汇编语言中断程序实例——定时小程序

本文通过汇编语言实现一个利用1CH号中断处理程序进行实时时钟显示的实例。程序首先读取系统时间,然后每秒更新并显示当前时间,直到达到用户设定的定时长度。同时,程序在结束前会恢复原始的1CH号中断向量。
摘要由CSDN通过智能技术生成
;计算机在系统加电期间,把系统定时器初始化为每55ms发出一次中断请求。CPU在相应定时中断请求后转入08H号中断处理程序。

;BIOS提供的08H号中断处理程序中有一条中断指令“INT 1CH”。所以每秒要调用1000/55≈18.2次1CH号中断处理程序。
;而BIOS的1CH号中断处理程序实际上并没有执行任何工作,只有一条中断返回指令(IRET)

;这样安排的目的就是为应用程序留下一个软接口,应用程序只要提供新的1CH号中断处理程序,就能实现某些周期性的工作。
;本实验就是利用这个软接口实现“实时时钟显示”

CODE  SEGMENT
    ASSUME  CS:CODE
       YYY    DW  0
       MON    DB  0
       DDD    DB  0
       OLD1C  DD  0
       COUNT  DW  0
       HHH    DB  0
       MMM    DB  0
       SSS    DB  0
       NOZERO DB  0
       TIMECOUNT  DW   0
       TIMEFLY  DW   0
       TIMEAGO  DB   0
       TIMENOW  DB   0
       SHOWTIME DW   0
START  PROC  FAR
	   
       CALL  INPUTDEC					;输入定时时长,保存在BX中
       MOV   TIMEFLY,BX					
	   
       PUSH  CS
       POP   DS						;把CS的值赋给DS
      ;设置新的中断向量
       MOV   AX,351CH					;读取1C号中断向量
       INT   21H					;ES:BX是读取出的中断向量
       MOV   CS:WORD  PTR OLD1C,BX
       MO
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值