我有下面的代碼:大會 - 進位標誌VS溢出標誌
mov al, -5
add al, 132
add al, 1
當我檢查,溢出標誌和進位標誌將在第一工作組,並在第二,只有溢出將設置。
但我不理解爲什麼:
- 在無符號數,結果是143(8FH),併爲適合的8位無符號數(大於255小)=>進國旗不應該被設置。在帶符號的數字中,結果是127,它適合於8位有符號數,並且不應該設置溢出。
的哪些錯誤?謝謝。
我有下面的代碼:大會 - 進位標誌VS溢出標誌
mov al, -5
add al, 132
add al, 1
當我檢查,溢出標誌和進位標誌將在第一工作組,並在第二,只有溢出將設置。
但我不理解爲什麼:
的哪些錯誤?謝謝。
在無符號算術中,您添加了0xFB
到0x84
,即251 + 132,它確實大於8位,因此進位標誌被設置。
在第二種情況下,所添加127至1,這的確超過了符號的8位範圍,所以溢出標誌被設置。當增加了兩個正數的結果是否定的或 添加兩個負數的結果爲正時,
溢出。 例如: +127+1=?
+127=0111 1111
+1=0000 0001
---------
1000 0000
當我們看兩個操作數和 結果符號位的符號位,我們發現,發生溢出,答案是不正確。
所以溢出時,才設置的時候我「加人,1」?如果我將刪除這一行,溢出不會設置? –
@Tom:溢出將由「add」指令設置。 –
所以你可以解釋我請溢出設置?因爲據我瞭解,在-128到127的範圍內不會影響溢出。 –