ARM 寻址模式与数据块传输详解
1. 间接寻址
ARM 采用“加载和存储”架构,不能直接访问内存位置,只能通过寄存器间接访问。间接寻址的美妙之处在于,它能通过单个寄存器访问整个 ARM 内存映射。
有两个用于读写内存数据的指令:
- LDR :从内存加载数据到寄存器
- STR :将寄存器中的数据存储到内存
间接寻址的最简单格式为:
LDR (<后缀>) <操作数 1> [<操作数 2>]
STR (<后缀>) <操作数 1> [<操作数 2>]
例如:
LDR R0,[R1] @ 将 R1 所指向位置的内容加载到 R0
STR R0,[R2] @ 将 R0 的内容存储到 R2 所指向的内存位置
执行上述两条指令可将一个字的数据从内存中的一个点传输到另一个点。所有寻址模式都允许使用后缀进行条件执行,如 LDREQ R0, [R1] ,只有当零标志位被设置时,才会将 R1 地址处的数据加载到 R0。
2. ADR 和 LDR
LDR 可以以伪指令的方式将标签的地址直接加载到寄存器,如 LDR R0, =string 会将名为 stri
ARM寻址模式与数据块传输解析
超级会员免费看
订阅专栏 解锁全文
1万+

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



