微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用1,2,4,8大小的变量进行内存寻址

如何解决使用1,2,4,8大小的变量进行内存寻址

我有一个函数,希望将列表/数组的起始地址以及元素大小传递给它,并返回大小。类似,用伪代码

int size(*start_addr,int (1,2,4 or 8) elem_size)

并且在汇编中能够运行包含以下指令的循环:

mov (%edi,%eax,4),%r8d

但是,我希望能够使用elem_size而不是硬编码的4。是否可以通过一个寄存器,例如:

mov (%edi," value in %esi "),%r8d

如果没有,解决这个问题的最佳方法是什么? (我当时正在考虑将偏移量为size * index的偏移量作为另一个寄存器,并删除1/2/4/8 size部分)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。