使用neg assembly命令时为什么需要加1?

时间:2016-01-03 16:06:57

标签: assembly nasm

为什么在使用neg assembly命令时需要添加1?

当我取出原始的r8值,并从所有F中减去它时,我应该得到它的“neg”值。但实际上我得到1,所以我需要将初始值增加1,或者将结果减1。

;mov r8, 0x2f2f2f6e6962732f ; /sbin/shutdown
; >>> hex(0xFFFFFFFFFFFFFFFF-0x2f2f2f6e6962732f) = '0xd0d0d091969d8cd0
;mov r8, 0xd0d0d091969d8cd0 ; either add 1 to this value, or subtract 1 after the neg statement
mov r8, 0xd0d0d091969d8cd1
;pushf
neg r8
;popf
;sub r8, 1

提前致谢!

0 个答案:

没有答案