簡體   English   中英

如何在 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 位寄存器?

只需詢問編譯器它會告訴你。 顯然,您不能將 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

好的,我得到了我自己問題的答案。 我必須將數字的下半部分加載到一個寄存器中,將上半部分加載到另一個寄存器中。 如果我們想將這兩個數字相加,那么我們使用ADDS將下半部分相加,使用ADC將上半部分相加。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM