ARM指令分类及其寻址方式
ARM指令分类及其寻址方式
一:ARM指令的分类
ARM指令集可以分为以下6类:
•跳转指令;
•数据处理指令;
•程序状态寄存器(PSR)传输指令;
•load/store指令;
•协处理器指令;
•异常中断产生指令;
二、ARM指令的一般编码格式
ARM指令字长为固定的32位。一条典型的ARM指令语法格式及编码格式如下:
语法格式:
<opcode>{<cond>}{s} <Rd>,<Rn>,<shifter_operand>
•< opcode>:指令操作符。
• {<cond>}:指令执行的条件。
• {S}:决定指令的操作是否影响CPSR的值。
• <Rd>:目标寄存器。
• <Rn>:包含第一个操作数的寄存器.
• <shifter_operand>: 表示第二个操作数.
编码格式:
31 28|27 25|24 21| 20 |19 16|15 12 | 11 8 7 0
| cond | 001 | opcode | s | Rn | Rd | shifter_operand |
• opcode:指令操作符编码。
• cond:指令执行的条件编码。
• S:决定指令的操作是否影响CPSR的值。
• Rd:目标寄存器编码。
• Rn:包含第一个操作数的寄存器编码.
• shifter_operand: 表示第二个操作数.
三、ARM指令的寻址方式
ARM指令的寻址方式有以下几种:
• 数据处理指令的操作数的寻址方式。
• 字及无符号字节的Load/Store指令的寻址方式。
• 杂类Load/Store指令的寻址方式。
• 批量Load/Store指令的寻址方式。
• 协处理器Load/Store指令的寻址方式。
ARM指令分类及其寻址方式的更多相关文章
- ARM指令分类学习
指令分类: 1.算数和逻辑指令 2.比较指令 3.跳转指令 4.移位指令 5.程序状态字访问指令 6.存储器访问指令 +++++++++++++++++++++++++++++++++++++++++ ...
- 3.2 ARM指令分类学习
1 算术移位寄存器和逻辑指令 1.1 mov 传送(Move) Mov {条件} {S} <dest>, <op_1> MOV从另一个寄存器.被移位的寄存器.或者一个立即数装载 ...
- [国嵌笔记][025][ARM指令分类学习]
算术和逻辑指令 1.mov 格式:mov {条件}{s} <dest>, <op> 作用:把一个值从一个地方移动到另一个地方,<dest>必须是寄存器 示例: @m ...
- 【嵌入式开发】 ARM 汇编 (指令分类 | 伪指令 | 协处理器访问指令)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42408137 转载请著名出处 本博客相关文档下载 : -- AR ...
- ARM指令教程
ARM指令教程 ARM汇编程序特点: l 所有运算处理都是发生通用寄存器(一般是R0~R14)的之中.所有存储器空间(如C语言变量的本质就是一个存储器空间上的几个BYTE).的值的处理 ...
- ARM指令
语法格式 <opcode>{<cond>}{S} <Rd>, <Rn>,<shifter_operand> {}表示是可选的部分,<& ...
- ARM指令学习,王明学learn
ARM指令学习 一.算数和逻辑指令 1— MOV 数据传送指令 2.— MVN 数据取反传送指令 3.— CMP 比较指令 4.— CMN 反值比较指令 5.— TST 位测试 ...
- ARM指令解析
今天我来总结一下arm指令的学习,今天我不会对所有的arm指令进行一一的解析,在这里希望大家去看arm汇编手册,这个手册的中文版我放在了http://download.csdn.net/detail/ ...
- ARM的九种寻址方式
文章目录 1.立即数寻址 2.寄存器寻址 3.寄存器间接寻址 4.寄存器偏移寻址 5.寄存器基址变址寻址 6.批量寄存器寻址 7.相对寻址 8.堆栈寻址 9.块拷贝寻址 寻址方式就是CPU根据指令中的 ...
随机推荐
- 使用注解配置Spring框架自动代理通知
话不多说上代码 项目架构图及Lib包如下: 第二步创建业务类接口 package cn.happy.day01.entity; /** * 1.业务接口 * @author Happy * */ pu ...
- css基本设置
css引入方式: 头部引入:在HTML页面头部编写程序(一般用在访问量大的网页上) 标签内引入:在标签内直接写样式(优先级最高,但难于维护,会沉积大量代码) 外部引入:用link标签引入(常用 ,维护 ...
- iOS8: Ignore manifest download, already have bundleID
在企业分发的app下载过程中,iOS8发现挂在官网上的企业版的app点击了提示是否安装应用程序,但始终安装不上程序,的device console发现安装的时候出现 LoadExternalDownl ...
- c#关于日期的两个知识点
1 C#中如何获得两个日期之间的天数差 DateTime d1;DateTime d2; int days = (d1 - d2).Days;//天数差 2 C#中从字符串得到DateTimeConv ...
- BP神经网络
秋招刚结束,这俩月没事就学习下斯坦福大学公开课,想学习一下深度学习(这年头不会DL,都不敢说自己懂机器学习),目前学到了神经网络部分,学习起来有点吃力,把之前学的BP(back-progagation ...
- [转] Loren on the Art of MATLAB
http://blogs.mathworks.com/loren/2007/03/01/creating-sparse-finite-element-matrices-in-matlab/ Loren ...
- android gradle的全局管理
转自:https://github.com/stormzhang 工程目录下建立baseConfig.gradle文件 内容如下 ext { android = [compileSdkVersion: ...
- Android之QQ登录界面
首先过程中碰到的几个问题: 1.对 EditText 进行自定义背景 2.运行时自动 EditText 自动获得焦点 3.在获得焦点时即清空 hint ,而不是输入后清空 4.清空按钮的出现时机(在得 ...
- ✡ leetcode 173. Binary Search Tree Iterator 设计迭代器(搜索树)--------- java
Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the ro ...
- java验证码前台技术
//下面是在前台jsp页面不用导工具的情况下制作的验证码的基本代码 $(function(){ //创建验证码 createCode(); jQuery.validator.addMethod( &q ...