📅  最后修改于: 2022-03-11 14:56:50.551000             🧑  作者: Mango
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