1
我知道爲了在程序集中將數字轉化爲負數,我需要將它變成二進制補碼,然後加上一個。減去程序集中的負數
我已經這樣做了,但是我的輸出結果仍然不正確,有人可以向我解釋我犯了什麼錯誤嗎?
目的是減去-val1 - val2的 - VAL3
這裏是我的代碼
.data val1 dword 10000h val2 dword 40000h val3 dword 20000h finalVal dword ?
.CODE 主PROC散裝
mov eax,val1 ; start with 10000h
xor eax,val1 ; xor eax to make it almost negative
add eax,1h ; now add one to make it negative
sub eax,val2 ; subtract 40000h
sub eax,val3 ; subtract 20000h
mov finalVal,eax ; store the result (30000h)
call DumpRegs ; display the registers
exit
最終結果應該是EAX = FFF90000 但目前我的輸出是EAX = FFFA0001
請注意,我使用的是32位數字,並在x86處理器上運行此數字。
感謝您的幫助
感謝您的幫助,這工作! – user3335607 2015-02-24 21:39:12