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
Assembly 转换内存地址_Assembly - Fatal编程技术网

Assembly 转换内存地址

Assembly 转换内存地址,assembly,Assembly,我一直在四处寻找这个问题,但似乎找不到。如果我在GDB反汇编代码中,如何将0xFFFFF4之类的东西转换为-0xc(我在网上找到了这些值) 我正在尝试用Perl实现它。我在使用十六进制,但我不知道我在做什么: print hex(shift); 这是二的补码 所以,你要做的是将每一位反转,然后加1 例如,0xFFFF04将变成0x000000fb+1=0x000000fc 编辑:要将其更改回去,您可以做同样的事情:因此0x000000fc将成为0xFFFF03+1=0xffffff04在32位

我一直在四处寻找这个问题,但似乎找不到。如果我在GDB反汇编代码中,如何将0xFFFFF4之类的东西转换为-0xc(我在网上找到了这些值)

我正在尝试用Perl实现它。我在使用十六进制,但我不知道我在做什么:

print hex(shift);
这是二的补码

所以,你要做的是将每一位反转,然后加1

例如,0xFFFF04将变成0x000000fb+1=0x000000fc


编辑:要将其更改回去,您可以做同样的事情:因此0x000000fc将成为0xFFFF03+1=0xffffff04

在32位寄存器或内存访问中,
0xFFFFF4
-0xc
(或
-12
)-假设一个现代CPU体系结构,所有这些都使用两个补码。

它被称为两个补码: