ARM学习笔记4——加载存储指令
一、字数据传送指令
作用:用于把单一的数据传入或者传出一个寄存器。

1、LDR指令
1.1、作用
根据<addr_mode>所确定的地址模式从内存中将一个32位的字段读取到目标寄存器<Rd>,如果指令中的寻址方式确定的地址不是字对齐的,则读出的数值要进行循环右移。
1.2、语法格式
LDR{<condition>} <Rd>,<addr_mode>
1.3、参数说明
<Rd>确定使用哪个通用寄存器作为目标寄存器
<addr_mode>确定了指令编码中的I、P、U、W、Rn和<addr_mode>位
2、STR指令
2.1、作用
将一个32位的字数据写入到指令中指定的内存单元
2.2、语法格式
STR{<condition>} <Rd>,<addr_mode>
二、字节数据传送指令(LDRB/STRB)
1、LDRB指令
1.1、作用
根据<addr_mode>所确定的地址模式将一个8位字节读取到指令中的目标寄存器<Rd>
1.2、语法格式 LDR{<condition>}B <Rd>,<addr_mode>
2、STRB指令
2.1、作用
从寄存器中取出指定的8位字节放入指令中指定的内存单元的低8位,并将其高位补0
2.2、语法格式 STR{<condition>}B <Rd>,<addr_mode>
三、半字数据传送指令(LDRH/STRH)
1、LDRH
1.1、作用
从内存中将一个16位的半字读取到目标寄存器
1.2、语法格式
LDR{<condition>}H <Rd>,<addr_mode>
2、STRH
2.1、作用
从寄存器中取出知道你个的16位半字放入指令中指定的内存单元的低16位,并将其高位补0
2.2、语法格式
STR{<condition>}H <Rd>,<addr_mode>
四、用户模式字数据传送指令
1、LDRT
1.1、作用
在用户模式下,根据<addr_mode>所确定的地址模式从内存中将一个32位的字读取到目标寄存器<Rd>
1.2、语法格式
LDR{<condition>}T <Rd>,<post_indexed_addressing_mode>
1.3、参数说明
<post_indexed_address_mode>:使用后索引地址模式寻址
2、STRT
2.1、作用
将一个32位的字数据写入到指令中指定的内存单元
2.2、语法格式
STR{<condition>}T <Rd>,<post_indexed_addressing_mode>
五、用户模式字节数据传送指令
1、LDRBT指令
1.1、作用
根据<post_indexed_addressing_mode>地址模式将一个8位字节读取到指令中的目标寄存器<Rd>
1.2、语法格式
LDR{<condition>}BT <Rd>,<post_indexed_addressing_mode>
2、STRBT指令
2.1、作用
将一个8位的字节数据写入到指令中指定的内存单元
2.2、语法格式
STR{<condition>}BT <Rd>,<addr_mode>,<post_indexed_addressing_mode>
六、有符号的字节/半字数据传送指令
1、LDRSB指令
1.1、作用
根据<addr_mode>所确定的地址模式将一个8位字节读取到指令中的目标寄存器<Rd>
1.2、语法格式
LDR{<condition>}SB <Rd>,<addr_mode>
2、LDRSH指令
2.1、作用
根据<addr_mode>所确定的地址模式将一个16位半字读取到指令中的目标寄存器<Rd>
2.2、语法格式
LDR{<condition>}SH <Rd>,<addr_mode>
ARM学习笔记4——加载存储指令的更多相关文章
- 学习笔记TF015:加载图像、图像格式、图像操作、颜色
		
TensorFlow支持JPG.PNG图像格式,RGB.RGBA颜色空间.图像用与图像尺寸相同(height*width*chnanel)张量表示.通道表示为包含每个通道颜色数量标量秩1张量.图像所有 ...
 - [WPF学习笔记]动态加载XAML
		
好久没写Blogs了,现在在看[WPF编程宝典],决定开始重新写博客,和大家一起分享技术. 在编程时我们常希望界面是动态的,可以随时变换而不需要重新编译自己的代码. 以下是动态加载XAML的一个事例代 ...
 - 自己写CPU第九阶段(3)——加载存储指令说明2(swl、swr)
		
我们会继续上传新书<q=%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%86%99CPU&ie=utf-8&src=se_lighten_quot ...
 - Away3D 学习笔记(一): 加载3DS格式的模型文件
		
加载外部的3DS文件分为两种: 1: 模型与贴图独立于程序的,也就是从外部的文件夹中读取 private function load3DSFile():Loader3D { loader = new ...
 - flutter源码学习笔记-图片加载流程
		
本文基于1.12.13+hotfix.8版本源码分析. 0.大纲 Image ImageProvider 图片数据加载 ImageStream.ImageStreamCompleter 缓存池 Pai ...
 - Unity3D学习笔记9——加载纹理
		
目录 1. 概述 2. 详论 2.1. Resources方式 2.2. API方式 2.3. Web方式 1. 概述 理论上,Unity中加载纹理并没有什么难度,只需要将图片放置在Assets文件夹 ...
 - ARM学习笔记2——分支跳转指令
		
一.Arm指令条件码和条件助记符 二.跳转指令B 1.作用 跳转指令B使程序跳转到指定的地址执行程序(跳转范围是PC-32MB到PC+32MB) 2.指令格式(注:B后面如果有条件,条件就是紧跟在B后 ...
 - ARM学习笔记6——程序状态寄存器访问指令
		
这两条指令结合,可用于对CPSR或SPSR进行读/写操作. 当需要保存或修改当前模式下CPSR或SPSR的内容时,首先必须将这些内容传递到通用寄存器中 1.MRS指令(Move to Register ...
 - 深入java虚拟机学习 -- 类的加载机制(续)
		
昨晚写 深入java虚拟机学习 -- 类的加载机制 都到1点半了,由于第二天还要工作,没有将上篇文章中的demo讲解写出来,今天抽时间补上昨晚的例子讲解. 这里我先把昨天的两份代码贴过来,重新看下: ...
 
随机推荐
- jQuery弹性滑块导航
			
曾起何时在某网站上看到一弹性滑块导航的效果,瞬间被些效果吸引,开始以为是用FLASH实现的,但查源代码发现用的是JQuery缓动效果. 今天心血来潮想拿这个效果练练手.也看看这段时间学习JS及jque ...
 - bzoj1004:[HNOI2008]Cards
			
思路:由于题目给出了置换,又要求本质不同的方案数,考虑使用Burnside引理,Burnside引理即通过所有置换和原来相同的方案数之和除以方案数总数,而对于某一个置换要使置换后得到的与原来的相同,就 ...
 - LINUX开机启动过程
			
LINUX开机启动过程 启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息 ...
 - ubuntu  安装flash插件
			
参考文献: http://wiki.debian.org.hk/w/Install_Flash_Player_with_APTapt-get install adobe-flashplugin
 - webbench
			
Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测 ...
 - ci 多个文件同时上传
			
// 单个文件请手册,这里多个文件中,参数设置可参考手册 view 视图 <form...> <input type="file" name="user ...
 - vs2005用正则表达式统计有效代码行数
			
正则表达式:^:b*[^:b#/]+.*$ 需要注意:#开头和/开头或者空行都不计入代码量. 如果需要只统计代码文件的代码量,可以按住Ctrl+Shift+F之后选择查找文件的类型. Form:htt ...
 - Java中的TCP/UDP网络通信编程
			
127.0.0.1是回路地址,用于测试,相当于localhost本机地址,没有网卡,不设DNS都可以访问. 端口地址在0~65535之间,其中0~1023之间的端口是用于一些知名的网络服务和应用,用户 ...
 - Phonegap之内存问题
			
使用phonegap的拍照功能时,安卓机会出现崩溃现象,这一问题的原因也许是你的手机内存不足,实际上却不是phonegap的问题,它也是原生android apps的一个普遍问题. 产生这一问题是因为 ...
 - VMware下打开Chrome OS遇到没有网络连接可用
			
打开ChromeOS.vmx文件,最后一行添加 ethernet0.virtualDev = "e1000" 就能解决.