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

中断引不引响状态寄存器?解决办法

2012-03-18 
中断引不引响状态寄存器???Assembly codein_cycle:add cx,01hcmp cx,1000 jne in_cyclezf0转到标号处执

中断引不引响状态寄存器???

Assembly code
in_cycle:         add cx,01h         cmp cx,1000 ;         jne in_cycle   ;zf=0转到标号处执行,         push dx         mov ah,06h     ;从键盘输入字符,al等于字符         mov dl,0ffh         int 21h         pop dx                  jz pass                  cmp al,1bh     ;如果键入ESC,则返回主菜单         je to_start1         cmp al," "     ;如果键入SPACE,则游戏暂停         je pause         cmp al,[di]    ;输入字母正确!则字母消失         je disappear

在jz pass那里应该是直接跳转到pass的标号里,而不应该执行后面的程序,可程序确是在执行后面的程序,这样我的疑问是谁改变了zf的值??实在是想不通,难道是中断?


[解决办法]
会影响:

、中断指令INT

中断指令INT的一般格式如下:

INT Imm

其中:立即数Imm是一个0~0FFH范围内的整数。

指令执行的步骤:
 
 ◆、把标志寄存器压栈,清除标志位IF和TF; 
◆、把代码段寄存器CS的内容压栈,并把中断服务程序入口地址的高字部分送CS; 
◆、32位段,压32位IP。
 

热点排行