;计算机在系统加电期间,把系统定时器初始化为每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