首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

中断驻留程序的有关问题

2012-03-13 
中断驻留程序的问题下面的程序是用debug写的,功能就是实现对int 16中断的注入和驻留,但什么也没干,仅仅只

中断驻留程序的问题
下面的程序是用debug写的,功能就是实现对int 16中断的注入和驻留,
但什么也没干,仅仅只是调用原中断处理,目前的程序运行结果是死机,
调了2天了,一筹莫展,请高手指点
1491:0100 EB08 JMP 010A
1491:0102 90 NOP
1491:0103 90 NOP
1491:0104 9C PUSHF ;从这里开始三行是新的中断处理
1491:0105 FF1E0001 CALL FAR [0100] ;仅仅只是对原中断处理的调用
1491:0109 CF IRET ;然后返回
1491:010A B81635 MOV AX,3516
1491:010D CD21 INT 21
1491:010F 891E0001 MOV [0100],BX
1491:0113 8C060201 MOV [0102],ES
1491:0117 8CC8 MOV AX,CS
1491:0119 8ED8 MOV DS,AX
1491:011B BA0401 MOV DX,0104
1491:011E B81625 MOV AX,2516
1491:0121 CD21 INT 21
1491:0123 BA0A01 MOV DX,010A
1491:0126 CD27 INT 27
1491:0128 CD20 INT 20


[解决办法]
1491:0100 EB08 JMP 010A 
1491:0102 90 NOP 
1491:0103 90 NOP 

;注意!下面我不按debug的格式来写,而按masm的语法来写:

Assembly code
     sti    cmp ah,0h    je  press_key    cmp ah,10h    je  press_key    jmp cs:old_16h_ptrpress_key:    pushf    call dword ptr cs:[old_16h_ptr]    iret
[解决办法]
学习
[解决办法]
sorry.
有个简单的问题啊..
楼主DEBUG程序里有一句
MOV AX,CS 
这个命令都可以用吗?
我记得MOV指令里好象不能用CS段寄存器吧?
也不知道是不是我错了
希望得到解答..
[解决办法]
8086不支持把数据直接送段寄存器操作,读取还是可以的。
另外8086下面mov指令不能把CS,IP当作目的操作数;PUSH CS合法,pop CS非法...

热点排行