ARM_s5pv210_arm_7(上)
2015-12-01 17:10
162 查看
加载指令:将数据从存储器中读到寄存器
存储指令:将处理完毕的数据(寄存器)存储到存储器
实现了寄存器与存储器之间的数据交互
单寄存器和多寄存器
/[b]************************************************[/b]/
单寄存器字和无符号字节的加载指令:
Rd:目标寄存器
<地址模式>:源寄存器
单寄存器的字加载指令
LDR{cond} Rd,<地址模式>
功能:将指定地址单元<地址模式>的字数据读入Rd中。
单寄存器的无符号字节加载指令
LDR{cond}B Rd,<地址模式>
功能:将指定地址<地址模式>地址单元中的字节数据读入Rd中,字节数据放在Rd的低8位,高24bit用0填充
示例:
![](http://img.blog.csdn.net/20151201163406524)
![](http://img.blog.csdn.net/20151201163420172)
![](http://img.blog.csdn.net/20151201150045153)
1.零偏移
LDR R0,[R1]//将R1指定的地址中的数据加载到R0
![](http://img.blog.csdn.net/20151201155217554)
R0 = 0xe92d4800
![](http://img.blog.csdn.net/20151201154919488)
![](http://img.blog.csdn.net/20151201155052882)
(1)加载数据不改变基址
![](http://img.blog.csdn.net/20151201155750953)
![](http://img.blog.csdn.net/20151201155856820)
(1)先加载数据(2)改变基址
![](http://img.blog.csdn.net/20151201160214833)
![](http://img.blog.csdn.net/20151201160311911)
(1)先将基址指定的地址加载到R0(2)改变基址
地址模式:
10:
1.无偏移量,将指定基址的数据加载到寄存器,基址不变。
2.将 基址+偏移量 指定地址的数据加载到寄存器,基址不变。
(1)立即数
(2)寄存器
(3)寄存器移位
3.将 基址+偏移量 指定地址的数据加载到寄存器,基址 = 基址 + 偏移量
(1)立即数
(2)寄存器
(3)寄存器移位
4.将基址表示的加载到寄存器,基址=基址+偏移量
(1)立即数
(2)寄存器
(3)寄存器移位
![](http://img.blog.csdn.net/20151201162114707)
单寄存器字和无符号字节的存储指令:
Rd:源寄存器
<地址模式>:目标地址
![](http://img.blog.csdn.net/20151201163652694)
以上是单寄存器的字和无符号字节 的加载和存储指令。
////////////////////////////////////////////////////////////
单寄存器半字和有符号字节的加载,存储指令:
加载指令:
语法格式:
![](http://img.blog.csdn.net/20151201164508174)
示例:
![](http://img.blog.csdn.net/20151201170024604)
不要以PC作为目标寄存器用在加载半字和字节的加载指令中
在基址要发送变化的指令中,基址寄存器不要和地址模式的地址相同
基址+偏移量
偏移量:立即数(8bit),寄存器
基址不变:
![](http://img.blog.csdn.net/20151201165029130)
![](http://img.blog.csdn.net/20151201165140231)
基址改变:
![](http://img.blog.csdn.net/20151201165401959)
存储指令:
![](http://img.blog.csdn.net/20151201170259480)
半字读写的时候,指定的地址必须半字对齐
![](http://img.blog.csdn.net/20151201170831368)
![](http://img.blog.csdn.net/20151201170916255)
/[b]**********************************************[/b]/
存储指令:将处理完毕的数据(寄存器)存储到存储器
实现了寄存器与存储器之间的数据交互
单寄存器和多寄存器
/[b]************************************************[/b]/
单寄存器字和无符号字节的加载指令:
Rd:目标寄存器
<地址模式>:源寄存器
单寄存器的字加载指令
LDR{cond} Rd,<地址模式>
功能:将指定地址单元<地址模式>的字数据读入Rd中。
单寄存器的无符号字节加载指令
LDR{cond}B Rd,<地址模式>
功能:将指定地址<地址模式>地址单元中的字节数据读入Rd中,字节数据放在Rd的低8位,高24bit用0填充
示例:
1.零偏移
LDR R0,[R1]//将R1指定的地址中的数据加载到R0
R0 = 0xe92d4800
(1)加载数据不改变基址
(1)先加载数据(2)改变基址
(1)先将基址指定的地址加载到R0(2)改变基址
地址模式:
10:
1.无偏移量,将指定基址的数据加载到寄存器,基址不变。
2.将 基址+偏移量 指定地址的数据加载到寄存器,基址不变。
(1)立即数
(2)寄存器
(3)寄存器移位
3.将 基址+偏移量 指定地址的数据加载到寄存器,基址 = 基址 + 偏移量
(1)立即数
(2)寄存器
(3)寄存器移位
4.将基址表示的加载到寄存器,基址=基址+偏移量
(1)立即数
(2)寄存器
(3)寄存器移位
单寄存器字和无符号字节的存储指令:
Rd:源寄存器
<地址模式>:目标地址
以上是单寄存器的字和无符号字节 的加载和存储指令。
////////////////////////////////////////////////////////////
单寄存器半字和有符号字节的加载,存储指令:
加载指令:
语法格式:
示例:
不要以PC作为目标寄存器用在加载半字和字节的加载指令中
在基址要发送变化的指令中,基址寄存器不要和地址模式的地址相同
基址+偏移量
偏移量:立即数(8bit),寄存器
基址不变:
基址改变:
存储指令:
半字读写的时候,指定的地址必须半字对齐
/[b]**********************************************[/b]/
相关文章推荐
- Nginx入门教程
- JavaScript中读取和保存文件实例
- kvm libvirt mem 热添加
- Cstring类,left(),right(),mid()
- UDP编程中的connect
- Linux shell命令
- tomcat7点击\bin\tomcat7.exe一闪而过,点击tomcat7w.exe提示未安装服务
- android资源管理和使用资源 (2015.12.1)
- 并查集
- 20135202闫佳歆、20135220谈愈敏——实验3
- 第三十篇:SOUI模块结构图及SOUI框架图
- 网络层—IP地址的三种分类方式
- 使用awstats监控Tomcat日志
- 【C#】Timer、窗体大小和屏幕大小
- mybatis(非常详细的哦~~~~)
- HTTP请求和响应格式详细解析
- Linux Shell 命令学习一
- [爬坑]关于angularJS的controller文件压缩的问题
- 输入子系统
- 12.1工作日志