相关疑难解决方法(0)

英特尔32位和64位寄存器的名称中E和R前缀代表什么?

32位寄存器名称以E开头,64位寄存器以R开头.E和R代表什么?是否有理由选择这些字母?

此外,在64位寄存器中,我们也可以在任何低级调试器(如Windbg)中看到,最右边的位仍然用与64位寄存器相同的名称引用,除了名称以E.例如,64位系统中RAX寄存器的最右边32位称为EAX.

那么,E和R代表什么?而且,为什么后缀X用于注册?

64-bit x86 assembly x86-64 cpu-registers

13
推荐指数
1
解决办法
3294
查看次数

汇编:C编程中变量的内存地址

这是我的C代码

C:\Codes>gdb test -q
Reading symbols from C:\Codes\test.exe...done.
(gdb) list 1,15
1       #include<stdio.h>
2
3       int main()
4       {
5               int a = 12345;
6               int b = 0x12345;
7               printf("+-----+-------+---------+----------+\n");
8               printf("| Var | Dec   | Hex     | Address  |\n");
9               printf("+-----+-------+---------+----------+\n");
10              printf("|  a  | %d | 0x%x  | %p |\n",a,a,&a);
11              printf("|  b  | %d | 0x%x | %p |\n",b,b,&b);
12              printf("+-----+-------+---------+----------+\n");
13
14              return 0;
15      }
(gdb) set disassembly-flavor intel
Run Code Online (Sandbox Code Playgroud)

这是标准输出

C:\Codes>test
+-----+-------+---------+----------+
| Var …
Run Code Online (Sandbox Code Playgroud)

c debugging assembly gdb ollydbg

5
推荐指数
1
解决办法
539
查看次数

标签 统计

assembly ×2

64-bit ×1

c ×1

cpu-registers ×1

debugging ×1

gdb ×1

ollydbg ×1

x86 ×1

x86-64 ×1