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

CF清0的问题

zhoulikelvjj 发布于 2007-10-27 22:55, 2294 次点击


and,or,xor等一些指令只对PF,SF,ZF标志位有影响,而对CF,OF,标志位无定义!
这里的无定义是什么意思?
MOV AL,01FH
OR AL,AL
这两个语句有对CF清0的作用,为什么?它是怎么对CF清0的?
如果把OR换成AND,XOR呢?
小弟汇编初学者,希望各位大侠指点指点!谢谢
7 回复
#2
llxf2007-10-28 18:36

MOV AL,01FH 可以这么写么?一个8位 一个16位?

#3
菜鸟上路2007-10-28 20:55
回复:(zhoulikelvjj)CF清0的问题
无意义就是不改变值
#4
菜鸟上路2007-10-28 20:55
回复:(llxf)MOV AL,01FH 可以这么写么?一个8位 ...
可以呀
#5
h287545322007-11-01 15:34

不可以吧,这样写的前提必须是八位中字母是高位吧?再说AL也不可能存储16位的呀~

#6
yege2007-11-19 08:39
回复:(llxf)MOV AL,01FH 可以这么写么?一个8位 ...

01FH 好像是8位吧。
#7
永夜的极光2007-11-19 10:55

指令的格式:AND Reg/Mem, Reg/Mem/Imm
受影响的标志位:CF(0)、OF(0)、PF、SF和ZF(AF无定义)
指令的功能是把源操作数中的每位二进制与目的操作数中的相应二进制进行逻辑“与操作”,操作结果存入目标操作数中。

指令的格式:OR Reg/Mem, Reg/Mem/Imm
受影响的标志位:CF(0)、OF(0)、PF、SF和ZF(AF无定义)
指令的功能是把源操作数中的每位二进制与目的操作数中的相应二进制进行逻辑"或操作",操作结果存入目标操作数中。

这两个指令都会把cf和of置零

另外

mov al,0ffffH
这样写用masm编译也没有问题,因为masm会自动截取低八位

#8
zhulei19782007-11-22 14:07
OR AL,AL
最高位没有进位,CF就置为0
1