ARM 汇编语言:指令、寄存器与数据格式全解析
1. ARM 加载和存储指令
1.1 指令概述
ARM 允许直接访问内存中的所有位置,在学习 ARM 汇编语言编程时,掌握访问内存不同位置的指令至关重要。在开始学习 ARM 的加载和存储指令之前,需要注意 ARM 的所有指令都是 32 位宽的,这是 RISC 架构的重要特征之一。当不需要 32 位时,ARM 会添加零以确保指令固定为 32 位。
1.2 具体指令介绍
1.2.1 LDR Rd, [Rx] 指令
该指令用于将 Rx 寄存器指向的基地址处的一个字(32 位或 4 字节)加载到通用寄存器(GPR)Rd 中。执行该指令后,Rd 将具有与内存中四个连续位置相同的值。因为每个内存位置只能容纳一个字节,而 GPR 是 32 位的,所以 LDR 会从四个连续的内存位置中读取 4 字节的数据。这些位置可以在 SRAM 或闪存中。
例如:
; 假设 R5 = 0x40000200
LDR R7,[R5] ; 将地址 0x40000200 - 0x40000203 的内容加载到 R7 中
1.2.2 STR Rx,[Rd] 指令
此指令用于将通用寄存器 Rx 的内容存储(复制)到 Rd 寄存器指向的基地址位置。需要注意的是,STR 指令的源寄存器位于目的寄存器之前。由于 GPR 是 32 位宽(4 字节),因此需要四个连续的内存位置来存储 GPR 的内容,这些内存位置必须是可写的,如 SRAM。
例如
超级会员免费看
订阅专栏 解锁全文
1350

被折叠的 条评论
为什么被折叠?



