注册 登录
编程论坛 汇编论坛

如何调用标志位???

夢梦 发布于 2015-10-16 22:21, 4294 次点击
比如编程中需要调用CF标志位
8 回复
#2
Spy0012015-10-17 01:16
#3
hu9jj2015-10-17 07:54
取标志寄存器数据后进行位运算,得到相应位的值。
#4
随风的飞叶2015-10-17 09:13
pushf ,pop reg , and 0000000001,这样做对吗
#5
随风的飞叶2015-10-17 09:16
pushf 标志寄存器压栈,pop reg,取出到寄存器,and 000000000001,取出CF状态。
#6
随风的飞叶2015-10-17 09:22
pushf
pop ax
and ax,0000000000000001  ;写成 and ax,1,可以吧
#7
随风的飞叶2015-10-17 09:54
assume cs:codesg,ss:stack
stack segment
     dw 10 dup(0)
stack ends
codesg segment
   s:pushf
     pop ax
     and ax,1
     mov ax,4c00h
     int 21h
codesg ends
end     s
运行通过。
#8
夢梦2015-10-17 23:08
拜谢了
#9
随风的飞叶2015-10-18 07:24
我的电脑上运行结果,pushf    ;ax=0000,
                       pop ax   ;ax=3302
                       and ax,1 ;ax=0000
与运算后,ax=0000,说明要取出的位为0,不为0则说明要取出的位为1。
取标志寄存器的那位的值,则and 那位置1,其余位置0。取出后要做什么
就不知道了,又没有要求。
1