OUT DX, AL STI
NEXT:MOV BH, 1 LL:
CMP BH, 0 JNE LL CALL BEEP MOV AH, 1 INT 16H JZ NEXT IN AL, 21H OR AL, 40H OUT 21H, AL MOV DX, 0EC4CH MOV AL, 42H OUT DX, AL STI
MOV AH, 4CH INT 21H IRQ PROC FAR PUSH AX PUSH DX
MOV BH, 0 MOV AL, 20H OUT 20H, AL MOV DX, 0EC4DH MOV AL, 1DH OUT DX, AL POP DX POP AX IRET IRQ ENDP
BEEP PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV BL, 0FFH MOV AL, 10110110B OUT 43H, AL MOV AX, 1190 OUT 42H, AL MOV AL, AH OUT 42H, AL
IN AL, 61H MOV AL, AH OR AL, 03H OUT 61H, AL MOV CX, 0 L0: LOOP L0 DEC BL JNZ L0 MOV AL, AH OUT 61H, AL POP DX POP CX POP BX POP AX RET BEEP ENDP CODE ENDS END START
5、将上述内容扩展,编程在微机显示屏上显示一个具有时、分、秒的程序,并使程序能够在每分钟鸣响一次、按任意键程序返回DOS。与上一题类似,实验
代码如下:
STACK SEGMENT PARA STACK DW 128H DUP(0) STACK ENDS DATA SEGMENT H DB 35 M DB 89 S DB 80 DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AL,00110111B MOV DX,0E483H OUT DX,AL MOV AX,1000H MOV DX,0E480H OUT DX,AL MOV AL,AH OUT DX,AL MOV AL,01110111B MOV DX,0E483H
OUT DX,AL MOV AX,2000H MOV DX,0E481H OUT DX,AL MOV AL,AH OUT DX,AL MOV AX,CS MOV DS,AX
MOV DX,OFFSET IRQ MOV AX,250EH INT 21H CLI
MOV DX,0EC4CH MOV AL,43H OUT DX,AL INC DX MOV AL,1DH OUT DX,AL IN AL,21H
AND AL,10111111B OUT 21H,AL MOV AX,DATA