张国祥 发表于 2012-11-6 21:40:19

int9中断例程疑问

在int9中断例程中,
int9h:
                push ax
                push bx
                push es
               
                in al,60h
               
                pushf
                pushf
                pop bx
                and bh,11111100b
                push bx
                popf
                call dword ptr ds:;调用这个的目的是什么?
               
                cmp al,1
                jne int9ret
               
                mov ax,0b800h
                mov es,ax
                inc byte ptr es:
               
        int9ret:
                pop es
                pop bx
                pop ax
                iret为什么没有那一句,连基本的字母更替都做不到(我实验时程序直接返回了,屏幕留下的是a),我根本没有按任何按钮,理论不会触发int 9h才对啊。


补充内容 (2012-11-6 21:45):
忘了说了,以上只是中断例程部分,不是全部代码

张国祥 发表于 2012-11-6 23:28:57

{:5_96:}求解答

张国祥 发表于 2012-11-7 22:23:14

已经了解原因,,结帖

cjl 发表于 2013-5-21 08:55:27

有同感,同样的问题想了好长时间, call dword ptr ds:调用了原int 9h中断,这样程序在运行的时候可以接收键盘其它指令,可为什么要放在新编中断的中间部位,而不是放在颜色显示后面……或者是程序中根本就不调用原int 9h???
页: [1]
查看完整版本: int9中断例程疑问