关于间接寻址,如 %segreg:disp(base,index,scale),foo

Posted

技术标签:

【中文标题】关于间接寻址,如 %segreg:disp(base,index,scale),foo【英文标题】:about indirect addressing like %segreg:disp(base,index,scale),foo 【发布时间】:2012-11-01 14:13:09 【问题描述】:

movl $0x14,0x4(%rax,%rdx,1) 测量 %rax+%rdx*1+0x4 = $0x14(20)

但是: mov 0x0(,%rax,8),%rax 哪个是基段寄存器? 这个指令是什么意思?

【问题讨论】:

【参考方案1】:

将内存地址%rax * 8处的值加载到%rax。没有基址寄存器和偏移量只是意味着base + index * multiplier + offset 的那些部分被假定为0x0

【讨论】:

以上是关于关于间接寻址,如 %segreg:disp(base,index,scale),foo的主要内容,如果未能解决你的问题,请参考以下文章

存储器 间接 寻址 试验 立即寻址 ;直接寻址 ;间接寻址 16位指针间接寻址 32位指针间接寻址

(计算机组成原理)第四章指令系统-第二节2:数据寻址(直接寻址间接寻址立即数)

嵌入式:ARM间接寻址变址寻址与多寄存器寻址

间接寻址和数组

不使用 eval 的间接寻址

基于转换的索引模式到间接寻址模式(x86 汇编)