HFUT实验:挂接1CH中断,正计时90秒后退出。要求屏幕显示0-89的秒数。

主程序代码:

        在数据段中,定义seg_address和off_address两个字变量来存储原来的中断处理程序(int 1CH)的段地址和偏移地址。
        在代码段中,由题意实现1CH中断处理命令的重写,故使用(int 21H)中35号命令获得原处理程序的地址,段地址在es中,偏移地址在bx中,存储并保护原来的代码;使用(int 21H)中25号命令设置新中断处理程序的地址,段地址在ds中,偏移地址在dx中,其中al寄存器存储要修改的中断向量标号,在调用int 1CH后,恢复原来的中断处理程序,将中断向量存储的地址利用25号命令修改为之前存储的地址,完成中断1CH的挂接功能。

倒计时子程序代码:

        cx寄存器存储循环次数,al寄存器存储初始输出90,由于倒计时九十秒,要输出十进制的字符,令待输出数除以十获得十位上的数,余数是个位上的数,分别加上30h获得数字的ASCII码,按照先后顺序输出,每个间隔调用子程序停顿延迟一秒,待输出数递减后继续循环,直到九十秒计时结束。

停顿延迟子程序代码:

       使用一个双层嵌套循环,增加程序的运行时间,从而通过调整循环次数的参数达到延时一秒的效果。


创作不易,手下留赞!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值