Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在使用neg assembly命令时需要添加1?_Assembly_Nasm - Fatal编程技术网

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

为什么在使用neg assembly命令时需要添加1?,assembly,nasm,Assembly,Nasm,为什么在使用neg assembly命令时需要添加1 当我取原始的r8值,从所有的F中减去它,我应该得到它的“负”值。但实际上我得到了更高的1,所以我需要增加初始值1,或者减去结果1 ;mov r8, 0x2f2f2f6e6962732f ; /sbin/shutdown ; >>> hex(0xFFFFFFFFFFFFFFFF-0x2f2f2f6e6962732f) = '0xd0d0d091969d8cd0 ;mov r8, 0xd0d0d091969d8cd0 ; eit

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

当我取原始的r8值,从所有的F中减去它,我应该得到它的“负”值。但实际上我得到了更高的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

提前谢谢

回想一下,所有的F都是-1,所以你要从-1中减去。要对一个数字求反,你要从零中减去它。看这个。