南邮微机实验(基于中断的动态显示)

利用1CH中断,每隔一定时间间隔,在屏幕上打印一行自定义的字符串(例如自己的学号B14040411),按下键盘任意键后程序自动退出。

.486
DATA SEGMENT USE16
MESG DB 'B14040411',0DH,0AH,'$'
OLD0A DD ?
ICOUNT DB 18
DATA ENDS
CODE SEGMENT USE16
      ASSUME CS:CODE,DS:DATA
BEG:  MOV AX,DATA
      MOV DS,AX
      CLI
      CALL READ0A
      CALL WRITE0A
      STI

SCAN: MOV AH,1
      INT 16H   ;BIOS 键盘输入功能调用 ,01H号查询键盘缓冲区。
      JZ SCAN
      CALL RESET
      MOV AH,4CH
      INT 21H
      
SERVICE PROC
      PUSHA
      PUSH DS
      MOV AX,DATA
      MOV DS,AX
      DEC ICOUNT
      JNZ EXIT
      MOV ICOUNT,18
      
      MOV AH,9
      LEA DX,MESG
      INT 21H

EXIT: POP DS   ;恢复现场
      POPA
      IRET
SERVICE ENDP

READ0A PROC
      MOV AX,351CH
      INT 21H
      MOV WORD PTR OLD0A,BX
      MOV WORD PTR OLD0A+2,ES
      RET
READ0A ENDP

WRITE0A PROC
      PUSH DS
      MOV AX,CODE
      MOV DS,AX
      MOV DX,OFFSET SERVICE
      MOV AX,251CH
      INT 21H
      POP DS
      RET
WRITE0A ENDP

RESET PROC
      MOV DX,WORD PTR OLD0A
      MOV DS,WORD PTR OLD0A+2
      MOV AX,251CH
      INT 21H
      RET
RESET ENDP
CODE ENDS
      END BEG


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值