如何解决在内存寻址中使用偏移量的两种方法
对于访问数组,我看到了以下两个经常使用的符号:
# Addressing in the general form of:
# address_or_offset(%base_or_offset,%index,scale)
# (1) using a label,which resolves to an address
movzwq myarray(,%rdi,2),%rbx # 0x400078
# (2) using an offset based on a register,usually %rbp
movzwq -8(%rbp,%rcx
第一种形式使用address(offset,index,scale)
表示法,第二种形式使用offset(base,scale)
表示法。我的问题是,使用第一个表示法并包括一个索引寄存器,是否真的可行:
movzwq myarray(%r11,%rbx
Of是从未使用过的,并且在使用该address(,scale)
表示法时总是空白(就像第一个示例一样)?
最后,offset/base
和address/offset
只是做同一件事的两种方式,也就是说,它允许通过在第一种情况下与寄存器进行偏移以及与寄存器进行偏移来到达起始存储位置。地址/标签在第二种情况下?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。