1.寄存器是什么?
寄存器是cpu内部的存储单元,存放内存读取而来的数据和CPU运算的中间结果。
2.为什么使用寄存器临时存放数据而不是直接操作内存?
2.1 cpu工作原理决定了有些操作运算符只能在CPU内部进行。
2.2 因为CPU读写寄存器速度比读写内存的速度快得多。
3.寄存器的种类
3.1通用寄存器
rax, rbx, rcx, rdx, rsi, rdi, rbp, rsp, r8, r9, r10, r11, r12, r13, r14, r15寄存
rsp 栈顶寄存器和rbp栈基址寄存器
这两个寄存器都跟函数调用栈有关,rsp一般用来存放函数调用栈的栈顶地址
rbp通常存放函数的栈帧起始地址,编译器使用两个寄存器通过偏移的方式访问函数局 部变量或函数参数
mov 0x8(%rsp),%rdx 地址为 0x8(%rsp) 的内存中的值拷贝到rdx寄存器
3.2程序计数寄存器(pc寄存器) rip寄存器。
用来存放下一条即将执行的指令的地址,这个寄存器决定了程序的执行流程
0x0000000000400770: add %rdx,%rax
0x0000000000400773: mov $0x0,%ecx
rip寄存器的值不是正在被CPU执行的指令在内存中的地址,而是紧挨这条正在被执行的指令后面那一条指令的地址。
3.3段寄存器
fs和gs寄存器。一般用它来实现线程本地存储(TLS)
4.寄存器的作用
5.寄存器作用过程