指针寄存器(instruction pointer, RIP.)X86-64的RIP可以切分成32位的EIP 和 16位IP,CPU是几位模式下就只能使用对应的指针寄存器。 状态寄存器(status register, RFLAGS) RFLAGS也有32位和16位版本,分别是EFLAGS 和 FLAGS。但是EFLAGS 和 FLAGS可以同时使用。 32位的状态寄存器 CF: 进位标志 PF : 奇偶标志 ZF :...
段寄存器 (Segment registers) 包括 CS, SS, DS, ES, FS, and GS,这些寄存器在X86-64架构中扮演了重要的角色。调试寄存器(Debug registers) 是帮助和加速软件调试器,如GDB等,执行调试任务的专门寄存器。控制寄存器 (Control registers) 包含一组用于管理和检查CPU状态的寄存器。包括主控制寄存器CRn和...
1. 通用寄存器 2. 段寄存器 3. 其它寄存器 4. 寄存器缩写含义 %ah中的h : High %al中的l : Low %eax中的e : Extend %rax中的r : 应该是Register,不确定 b : byte w : word 5. 函数调用中用到的寄存器 // 伪代码 func name(a, b, c, d, e, f) { return g; } 调用函数时参数a,b,c...
x86-64是1999年由AMD设计,AMD首次公开64位集以扩充给IA-32,称为x86-64(后来改名为AMD64)。AMD64架构在IA-32上新增了64位寄存器,并兼容早期的16位和32位软件,因此许多操作系统以及产品,尤其是在Intel开发Intel64之前就引入x86-64支持的,使用AMD64同时指代AMD64和Intel64。Intel64是后续支持了AMD64,不过不愿意叫...
标志寄存器 标志寄存器,里面有众多标记位,记录了CPU执行指令过程中的一系列状态,这些标志大都由CPU自动设置和修改: CF 进位标志 PF 奇偶标志 ZF 零标志 SF 符号标志 OF 补码溢出标志 TF 跟踪标志 IF 中断标志 ··· 在x64架构下,原来的eflags寄存器升级为64位的rflags,不过其高32位并没有新增什么功能,保留为...
本节主要讲述Intel处理器中的段寄存器,用于支持处理器的段式存储器管理机制。16位的8086/Intel286处理器有4个段寄存器CS/DS/SS/ES。32位的处理器运行在保护模式下时,除了先前的4个段寄存器,还引入了两个新的段寄存器FS/GS,这些寄存器都是16比特位宽。64位模式下的段寄存器有特殊性,后面有一节介绍。
x86与x64架构的通用寄存器名称有所不同,x86架构有八个通用寄存器:eax, ebx, ecx, edx, esi, edi, esp和ebp。而x64架构的通用寄存器则有十六个:rax, rbx, rcx, rdx, rsi, rdi, rsp, rbp, r8, r9, r10, r11, r12, r13, r14和r15。x64架构在寄存器命名规则上与x86有所不同。在x86...
寄存器名称寄存器含义1寄存器含义2寄存器含义3 %rax 存储函数调用的返回结果 在imul 指令中,两个64位的乘法最多会产生128位的结果,需要 %rax 与 %rdx 共同存储乘法结果 在div 指令中被除数是128 位的,同样需要%rax 与 %rdx 共同存储被除数 %rsp 堆栈指针寄存器,通常会指向栈顶位置 %rbp 栈帧指针,用于标识...
寄存器 X86-64大约有16个64位整数寄存器,其中栈指针rsp和基址指针rbp较为特殊,rsi和rdi跟处理字符串相关。后面的八个寄存器是编号的,使用起来没有特殊限制。 rax rbx rcx rdx rsi rdi rbp rsp r8 - r15 其中rax的结构如下 [image:ECA803C6-AECB-4593-8CAA-34CF915FBC41-86030-0001242002E5C3CA/20171008192750...