寄存器的名称及作用

在此记录下寄存器的名称及作用,方便查看。

不同体系下寄存器名称:

 

|63..32|31..16|15-8|7-0|

       |AH..AL..|

         |AX......|

    |EAX...........|

|RAX...................|

不同寄存器作用:

rax 作为函数返回值使用

rsp 栈指针寄存器,指向栈顶

rdi,rsi,rdx,rcx,r8,r9 用作函数参数,依次对应第1参数,第2参数...

rbx,rbp,r12,r13,14,15 用作数据存储,遵循被调用者使用规则,简单说就是随便用,调用子函数之前要备份它,以防他被修改

r10,r11 用作数据存储,遵循调用者使用规则,简单说就是使用之前要先保存原值

 

参考:

https://msdn.microsoft.com/zh-cn/library/9z1stfyw.aspx 

http://www.mouseos.com/x64/extend64.html

 

另附上CSAPP实验里用到的GDB常用命令,方便查阅。

-objdump -d a.out>a.s 生成反汇编文档

gdb a.out 进入gbd

b *0x400000 设置断点

d 1 删除断点1

c 继续,跳过当前断点

info r 寄存器状态信息

info b 断点列表

p *0x400000 打印地址处双字(32bit)

p/x 16进制打印

p/s 0x400000 打印地址处字符串

p/s *(char *)($rax) 打印地址处字符

p/s  (char *)($rax) 打印地址处字符串

你可能感兴趣的:(CS:APP)