MOV R0, #0x80000000
MOV R1, #0x1
SUBS R2, R1, R0
運行此代碼時,設定標志 N 和 Z。現在,我知道如果操作結果為負,則設定 N 標志,并且在溢位時設定 Z 標志。
我不明白的是,如何0x1 - 0x80000000 導致溢位。任何幫助表示贊賞!
uj5u.com熱心網友回復:
考慮將這兩個數字擴展到 36 位。當然,1 仍然是 1。80000000 變為 f80000000。1 - f80000000 = 080000001,一個正數。由于 080000001 不適合 32 位作為正數,因此存在溢位。
uj5u.com熱心網友回復:
1
1000
1110
======
10001
1000
1110
======
0111
msbit的進位和進位不一樣...有符號溢位。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/468267.html
上一篇:高效計算漢明重量
