how to get keyboard input and if no input is pressed program doesn't stop 8086 code example

Example: how to get keyboard input and if no input is pressed program doesn't stop 8086

BITS 16
ORG 100h

_loop:

 ;
 ; L O O P   S T U F F
 ;

 ;Show a greeting message

 mov ah, 09h
 mov dx, strGreetings
 int 21h



 ;
 ; K E Y S   C H E C K
 ;


 ;Check for a keystroke

 mov ah, 01h
 int 16h
jz _loop                               ;ZF is set if no keystroke available

 ;A keystroke is present, remove it from the buffer
 ;so that we always check the last key pressed by the user

 xor ah, ah
 int 16h

 ;AL = ASCII code     
 ;AH = Scancode

 ;Check the key was ESC

 cmp al, ESC_ASCII_CODE 
jne _loop

 ;
 ; T E R M I N A T I O N
 ;

 mov ax, 4c00h
 int 21h

 ;[ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ]
 ;   [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ]
 ;[ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ]
 ;
 ;D A T A
 ;

 strGreetings db "Hello!", 13, 10, 24h

 ;[ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ]
 ;   [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ]
 ;[ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ] [ o ]
 ;
 ;E Q U A L S
 ;

 ESC_ASCII_CODE EQU 27

Tags:

Misc Example