ARM指令 ldr与str的区别什么
时间: 2024-04-22 16:28:38 浏览: 13
ARM指令中,ldr指令用于将数据从内存中加载到寄存器中,而str指令则是将数据从寄存器中存储到内存中。换句话说,ldr指令是将数据读入到CPU中进行处理,而str指令是将CPU中的数据写入到内存中保存。因此,ldr指令用于读取内存中的数据,而str指令用于写入数据到内存中。这两个指令在ARM汇编语言中都是非常常用的。
相关问题
如何控制ARM中的LDR与STR寄存器
在ARM中,LDR和STR指令用于从内存中加载数据到寄存器中或将寄存器中的数据存储到内存中。要控制LDR和STR指令使用的寄存器,可以使用汇编语言编写指令序列来实现。
以下是一些示例:
1. 将寄存器R0中的值存储到内存地址0x1000处:
```
STR R0, [0x1000]
```
2. 从内存地址0x1000处加载一个值到寄存器R0中:
```
LDR R0, [0x1000]
```
3. 从内存地址0x1000处加载一个值到寄存器R0中,并将其乘以2:
```
LDR R1, [0x1000]
MOV R0, #2
MUL R0, R1, R0
```
在这个示例中,LDR指令将从内存中加载一个值到寄存器R1中,然后MOV和MUL指令将该值乘以2并将结果存储在寄存器R0中。
对于更复杂的程序,可能需要使用更多的寄存器和指令来完成所需的操作。但是,通过使用LDR和STR指令以及其他ARM汇编指令,可以轻松地控制寄存器以实现所需的功能。
LDR指令和STR指令
LDR指令和STR指令是ARM架构中常用的数据传输指令,用于在寄存器和内存之间进行数据传输。
LDR指令用于将一个字(32位)或半字(16位)从内存中加载到寄存器中。它的语法如下:
```
LDR{条件码} 目标寄存器, [内存地址或偏移量]
```
其中,目标寄存器是要加载数据的寄存器,内存地址或偏移量指定了要加载的数据在内存中的位置。
例如,以下代码将从内存地址0x1000处加载一个字到R0寄存器中:
```
LDR R0, [0x1000]
```
STR指令用于将一个字(32位)或半字(16位)从寄存器中存储到内存中。它的语法如下:
```
STR{条件码} 源寄存器, [内存地址或偏移量]
```
其中,源寄存器是要存储到内存中的寄存器,内存地址或偏移量指定了数据要存储到内存中的位置。
例如,以下代码将R0寄存器中的一个字存储到内存地址0x1000处:
```
STR R0, [0x1000]
```