1

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

4

2 回答 2

3

只需询问编译器它会告诉你。显然,您不能将 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
于 2021-01-31T23:37:10.837 回答
0

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

于 2021-01-31T07:36:38.100 回答