汇编AT&T读取内存以注册?

问题描述

在汇编中,我试图将 32 位从内存添加到 64 个寄存器,这将加载 64 位:

add arr(,%rax,4),%rbx

所以我尝试了:

add arr(,%rbx

没有用。

我该如何解决这个问题?

解决方法

您不能直接执行该操作,而是分两步进行:首先您需要将您的值零扩展到一个额外的寄存器中,然后您才能使用它进行加法。

应该是这样的:

    movl arr(,%rax,4),%edx
    add %rdx,%rbx