x86-64的CPU当中包含16个存储64位值的通用目的寄存器,用来存储整数数据和指针,下图只列出了前8个,后面还有r8-r15,结构类似
寄存器以及寻址简介-LMLPHP
上述寄存器以及相关默认功能
rax保存所有api函数返回值
rbx基地址寄存器,在内存寻址时存放基地址
rcx计数器,是REP前缀指令和loop指令的默认计数器
rdx存放整数除法产生的余数
rsi源索引寄存器,字符串操作中,指向源串
rdi目标索引寄存器,字符串操作中,指向目标串
rbp基址指针寄存器,其内存放着一个指针,永远指向系统栈最上面一个栈的底部
rsp栈指针寄存器,其内存放着一个指针,该指针指向系统最上面一个栈帧的栈顶
内存寻址的几种格式
类型格式操作数值名称
立即数$ImmImm立即数寻址
寄存器raR[ra]寄存器寻址
存储器ImmM[Imm]绝对寻址
存储器(r)M[R[r]]间接寻址
存储器Imm(r)M[Imm+R[r]](基址+偏移量)寻址
存储器(r1, r2)M[R[r1]+R[r2]]变址寻址
存储器Imm(r1, r2)M[Imm + R[r1]+R[r2]]变址寻址
存储器(,r,s)M[R[r]*s]比例变址寻址
存储器Imm(,r,s)M[Imm+R[r]*s]比例变址寻址
存储器(r1,r2,s)M[R[r1]+R[r2]*s]比例变址寻址
存储器Imm(r1,r2,s)M[Imm+R[r1]+R[r2]*s]比例变址寻址
上表中,s必须为1,2,4,8





10-01 05:05
查看更多