编写程序,将0x12345678—0x1234567B四个数存入寄存器RO-R3,使用单寄存器加载/存储指令 LDR/STR将RO-R3 中的数据存入从地址0x20000000 开始的 16字节中,再用多单存器加载指令特这 16字节从内存加载到奇存器 R4-R7。
时间: 2024-02-19 12:58:50 浏览: 104
嵌入式系统/ARM技术中的ARM伪指令之地址读取:ADR ADRL LDR
汇编代码如下:
```
MOV R0, #0x12345678 ; 将0x12345678存入R0
MOV R1, #0x12345679 ; 将0x12345679存入R1
MOV R2, #0x1234567A ; 将0x1234567A存入R2
MOV R3, #0x1234567B ; 将0x1234567B存入R3
STR R0, [0x20000000] ; 将R0的值存入地址为0x20000000的内存中
STR R1, [0x20000004] ; 将R1的值存入地址为0x20000004的内存中
STR R2, [0x20000008] ; 将R2的值存入地址为0x20000008的内存中
STR R3, [0x2000000C] ; 将R3的值存入地址为0x2000000C的内存中
LDMIA R4!, {R0-R3} ; 将地址为R4的内存中的16字节值分别存入R0-R3,并将R4加上16
```
解释一下代码:
首先将四个数分别存入R0-R3中,然后使用STR指令将它们存入从地址0x20000000开始的连续四个地址中。接着使用LDMIA指令从地址为R4的内存中加载16字节值到R0-R3中,同时将R4加上16,以便下次加载时从下一个地址开始。注意,这里使用了LDMIA指令,它是多单存器加载指令的一种,能够一次性加载多个寄存器的值。
阅读全文