[問題] flag的問題

看板ASM (組合語言)作者 (nien)時間16年前 (2008/12/13 21:55), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
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)

12/14 02:55, , 1F
第二個例子你這樣子是叫NOT 比NEG多一個-1
12/14 02:55, 1F
文章代碼(AID): #19GxxE1A (ASM)
文章代碼(AID): #19GxxE1A (ASM)