能力值:
( LV9,RANK:170 )
|
-
-
2 楼
mov al,7dh
add al,0bh
-----------------
结果,al = 88h = 10001000
所以,SF = 1
OF 是个符号数运算标志,CF 是个无符号数运算标志。
对符号数来说是溢出了,对无符号数来说是没有溢出
所以,OF = 1, CF = 0
|
能力值:
(RANK:260 )
|
-
-
3 楼
你对补码的概念和CPU标志位具体表达的含义理解有误。
0x7D == 125
0x0B = =11
相加为0x88
0x88的最高位为1,因此SF==1
0x88并没有向高位进位,所以CF == 0
0x88在8位有符号数中是负数,发生了溢出,OF==1;
0x88不为0,因此ZF == 0;
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
但SF是有符号运数才影响啊.
88是正数啊 非负则0 难道书说的都错?
|
能力值:
(RANK:300 )
|
-
-
5 楼
你大致没有看清楚书上说的.可以回头查查。
al 的最高位是 符号位 对有符号运算来说。
1000 0000 表示是个-0 而不是80
也就说 88 是1000 1000 是-08 而不是 88
CF 根据最高有效位是否有进(借)位设置的:有进(借)位时CF=1, 无进(借)位时CF=0.
OF 根据操作数的符号及其变化来设置的:若两个操作数的符号相同,而结果的符号与之相反时OF=1, 否则为0.
ZF 根据结果来设置:不等于0时ZF=0, 等于0时ZF=1
SF 根据结果的最高位来设置:最高位为0, 则SF=0.
AF 根据相加时D3是否向D4进(借)位来设置:有进(借)位时AF=1, 无进(借)位时AF=0
PF 根据结果的1的个数时否为奇数来设置:1的个数为奇数时PF=0, 为偶数时PF=1
crtl+v 的一段话,自己看看 这个 add 对标志位的影响............
|
|
|