作者chunnien (nien)
看板ASM
标题[问题] flag的问题
时间Sat Dec 13 21:55:25 2008
MOV EAX,FFFF1122h
SUB EAX,1000
FFFF1122
-)000003E8
----------
FFFF0D3A
用compiler这段跑完之後EAX=FFFF0D3A,CF=0,ZF=0,OF=0,SF=1
请问为什麽SF=1
F F F F 0 D 3 A
1111 1111 1111 1111 0000 1101 0011 1010
^
是不是因为第32bit是1所以是负数,有错的话请帮我指正谢谢
-------------------------------------------------------------------
MOV EDX,0000151Eh
NEG EDX
0 0 0 0 1 5 1 E
0000 0000 0000 0000 0001 0101 0001 1110
NEG後 1111 1111 1111 1111 1110 1010 1110 0001 ????自己写出来是这样
F F F F E A E 1 ????但正确答案却是
???? FFFFEAE2
EDX为什麽会是FFFFAE2而不是FFFFAE1??
SF=1 负数是因为跟上个例子一样的原因吗??
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.38.230
※ 编辑: chunnien 来自: 220.136.38.230 (12/13 21:56)
1F:推 wowtiger:第二个例子你这样子是叫NOT 比NEG多一个-1 12/14 02:55