前言
指令集版本:arm v5te 32bit
LDR&STR指令分为两大类,
一种是操作32bit字数据 或 8bit无符号字节数据的,
另一种是操作16bit半字数据 或 8bit有符号字节数据的。
这里先只讲第一类,LDR LDRB这种。(LDR R0, [R1, # 4] ; LDRB R0, [R1, # 4])
概念
看不懂不要紧,可以分析实例后再回头看概念对号入座
1 指令格式:
- LDR {cond} {B} {T} <Rd>,{address_mode}
- LDR {条件码} {字/无符号字节} {是否有 ! } <目标寄存器>,{第二个操作数的内存地址}
2 Load/Store指令由两部分组成
基址寄存器Rn与地址偏移量
3 地址偏移量分为三种形式(地址偏移量形式相同的指令,机器码数据结构相同)
(1)立即数
(2)寄存器
(3)寄存器及移位常数
4 地址计算方法分为三种
(1)偏移量方法
(2)事先更新(事先:先计算偏移,再访问内存,最后更新基址寄存器)
(3)事后更新(事后:先访问内存,然后计算新基址寄存器)
实例分析
1 指令的9种格式:
2 用伪代码解释指令的执行过程:
3 关于立即数和移位位数的取值范围
4 表格中同一横排的地址偏移量形式相同,机器码数据结构相同。
5 表格中同一竖排的计算方法相同。
指令的数据结构
1 地址偏移量类型:立即数
2 地址偏移量类型:寄存器
3 地址偏移量类型:寄存器移位常量
4 各bit位的含义:
若有错误希望能指出,共同学习进步~
本文由看雪论坛 爱吃菠菜 原创
转载请注明来自看雪社区
祝大家中秋快乐!
热门阅读
点击阅读原文/read,
更多干货等着你~
到此这篇ldr指令和str指令(ldr str指令)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/76068.html