如何在 32 位 arm 处理器中加载 64 位数字?

How load a 64 bit number in a 32 bit arm processor?

我正在尝试在 32 位 ARM7TDMI-S 微处理器上加载 64 位数字,但是我不明白如何操作。我知道 MOV 和 LDR 都只存储 32 位数字,所以有什么办法可以将 2 个 32 位寄存器用作一个 64 位寄存器?

好的,我得到了我自己问题的答案。我必须将数字的下半部分加载到一个寄存器中,将上半部分加载到另一个寄存器中。如果我们想将这两个数字相加,那么我们使用 ADDS 添加下半部分,使用 ADC.

添加上半部分

只要问编译器,它就会告诉你。显然你不能将 64 位放入 32 位,它需要两个寄存器。

unsigned long long fun ( unsigned long long a, unsigned long long b )
{
    return(a+b);
}

00000000 <fun>:
   0: e0900002 adds r0, r0, r2
   4: e0a11003 adc r1, r1, r3
   8: e12fff1e bx lr