目录
CPU寄存器
x86-64 Linux System V ABI
| 寄存器 |
用途 |
调用约定 |
32位 |
16位 |
8位 |
%rax |
返回值 |
Caller-saved |
%eax |
%ax |
%al |
%rbx |
基址寄存器 |
Callee-saved |
%ebx |
%bx |
%bl |
%rcx |
传递参数 |
Caller-saved |
%ecx |
%cx |
%cl |
%rdx |
传递参数 |
Caller-saved |
%edx |
%dx |
%dl |
%rsi |
传递参数 |
Caller-saved |
%esi |
%si |
%sil |
%rdi |
传递参数 |
Caller-saved |
%edi |
%di |
%dil |
%rsp |
栈指针 |
Callee-saved |
%esp |
%sp |
%spl |
%rbp |
帧指针 |
Callee-saved |
%ebp |
%bp |
%bpl |
%r8 |
传递参数 |
Caller-saved |
%r8d |
%r8w |
%r8b |
%r9 |
传递参数 |
Caller-saved |
%r9d |
%r9w |
%r9b |
%r10 |
临时寄存器 |
Caller-saved |
%r10d |
%r10w |
%r10b |
%r11 |
临时寄存器 |
Caller-saved |
%r11d |
%r11w |
%r11b |
%r12 - %r15 |
被调用者保存寄存器 |
Callee-saved |
%r12d - %r15d |
%r12w - %r15w |
%r12b - %r15b |
|
|
|
|
|
|
%rip |
指令指针 |
|
%eip |
%ip |
|
%rflags |
标志寄存器 |
|
%eflags |
%flags |
|
Flags 标志位
| VS显示名称 |
标志位 |
全称 |
为1时表明... |
用户态可用 |
| OV |
OF |
Overflow Flag |
有符号数运算结果溢出 |
√ |
| UP |
DF |
Direction Flag |
字符串指令的处理方向递减 |
√ |
| EI |
IF |
Interrupt Flag |
允许外部中断 |
|
| PL |
SF |
Sign Flag |
结果为负数 |
√ |
| ZR |
ZF |
Zero Flag |
结果为零 |
√ |
| AC |
AF |
Auxiliary carry Flag |
(辅助进位) |
√ |
| PE |
PF |
Parity Flag |
结果的二进制表示中1的个数为偶数 |
√ |
| CY |
CF |
Carry Flag |
无符号数运算结果溢出 |
√ |
GDB调试常用命令
程序运行控制
| 命令 |
别名 |
作用 |
备注 |
run |
r |
运行程序 |
可以带参数,如run arg1 arg2 |
continue |
c |
继续执行程序 |
在断点处暂停后使用 |
stepi |
s |
单步执行 |
进入函数调用 |