輸入並響鈴!
data segment
over db 'over',13,10,'$'
data ends
code segment
main proc far
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov ah,01h
int 21h
mov cl,al
bell:
mov ah,02h
mov dl,07h
int 21h
call SUB_DELAY
cmp cl,30h
jz exit
loop bell
exit:
lea dx,over
mov ah,9
int 21h
mov ah,4ch
int 21h
SUB_DELAY PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSHF
MOV AH, 2CH
INT 21H
add DH,2 ;系統秒數個數加1
MOV BL, DH
CMP BL, 3CH ;如果是60
JNE SUB_TIMER
XOR BL, BL ;BL置0
SUB_TIMER:
MOV AH, 2CH
INT 21H ;獲取系統時間
CMP BL, DH ;秒數十位置0,只比較個數
JE SUB_RET ;如果到了下一秒,則返回
JMP SUB_TIMER
SUB_RET:POPF
POP DX
POP CX
POP BX
POP AX
RET
SUB_DELAY ENDP
main endp
code ends
end start
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.