急问用汇编怎么编写时钟程序SOS!1!1
哥哥们,帮帮小弟吧!小弟又有题目不会写了!!谢谢了!! 编写 MYINT1C.ASM 功能: 实现 INT 1C MY INT 1C 实现的功能在屏幕的右上角显示秒表或时钟(秒表简单,时钟有加分) 按ESC,退出程序。 有关技术方法说明: [替换中断的方法有两种]: ============================================================================== 方法1[推荐]:直接对中断向量表操作 MY_INTNO DW 1CH OLD_INTOFF DW ? OLD_INTSEG DW ? ; ------ 替换中断方法 MOV AX,MY_INTNO SHL AX, 2 MOV DI, AX MOV AX, 0 MOV ES, AX ;此时,ES:DI是中断向量的地址 CLI ;禁止中断 MOV AX, ES:[DI] MOV OLD_INTOFF,AX MOV AX,OFFSET MY_INT1C MOV ES:[DI] MOV AX,ES:[DI+2] MOV OLD_INTSEG, AX MOV AX, CS MOV ES:[DI+2], AX STI ;允许中断 ... ; ------ 退出前恢复原中断的方法 MOV AX,MY_INTNO SHL AX, 2 MOV DI, AX MOV AX, 0 MOV ES, AX ;此时,ES:DI是中断向量的地址 CLI ;禁止中断 MOV AX, OLD_INTOFF MOV ES:[DI], AX ADD DI,2 MOV AX, OLD_INTSEG MOV ES:[DI], AX STI ;允许中断 ; ------ 我们的中断处理程序 MY_INT1C PROC ... IRET MY_INT1C ENDP ============================================================================== 方法2:使用DOS 功能 35 取中断向量 INPUT:AL=中断类型 OUTBUP:ES:BX=中断向量 25 设置中断向量 INPUT:DS:DX=中断向量 AL=中断类型号 先取中断向量保存,设置自己的中断向量,等ESC KEY,设置原来的中断向量,退出 [显示的方法有两种]: ============================================================================== 方法1[推荐]:直接对中断向量表操作 MOV AX, 0B800H ; TEXT 页面内存地址 MOV ES, AX MOV DI, 71*2 ; 第1行,第72列; (按行排列,第1行,1-80列,第2行,1-80列 ...) ... MOV ES:[DI], AX ; AL, 你想显示的字, AH,显示属性 ============================================================================== 方法2: 使用BIOS功能 10 2 置光标位置 BH=页号 DH,DL=行,列 10 9 在光标位置显示字符及属性 BH=显示页 AL=字符 BL=属性 CX=字符重复次数 10 A 在光标位置显示字符 BH=显示页 AL=字符 CX=字符重复次数 10 E 显示字符(光标前移) AL=字符 BL=前景色 ============================================================================== 关于显示属性: 1个BYTE,高4位为背景属性,低4位为前景属性(字符) 4位含义 . . . . | | | | | | | +--------------------兰色 | | +----------------------绿色 | +------------------------红色 +--------------------------亮度 |