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指令分类及其寻址方式的更多相关文章

  1. ARM指令分类学习

    指令分类: 1.算数和逻辑指令 2.比较指令 3.跳转指令 4.移位指令 5.程序状态字访问指令 6.存储器访问指令 +++++++++++++++++++++++++++++++++++++++++ ...

  2. 3.2 ARM指令分类学习

    1 算术移位寄存器和逻辑指令 1.1 mov 传送(Move) Mov {条件} {S} <dest>, <op_1> MOV从另一个寄存器.被移位的寄存器.或者一个立即数装载 ...

  3. [国嵌笔记][025][ARM指令分类学习]

    算术和逻辑指令 1.mov 格式:mov {条件}{s} <dest>, <op> 作用:把一个值从一个地方移动到另一个地方,<dest>必须是寄存器 示例: @m ...

  4. 【嵌入式开发】 ARM 汇编 (指令分类 | 伪指令 | 协处理器访问指令)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42408137 转载请著名出处 本博客相关文档下载 :  -- AR ...

  5. ARM指令教程

    ARM指令教程 ARM汇编程序特点: l         所有运算处理都是发生通用寄存器(一般是R0~R14)的之中.所有存储器空间(如C语言变量的本质就是一个存储器空间上的几个BYTE).的值的处理 ...

  6. ARM指令

    语法格式 <opcode>{<cond>}{S} <Rd>, <Rn>,<shifter_operand> {}表示是可选的部分,<& ...

  7. ARM指令学习,王明学learn

    ARM指令学习 一.算数和逻辑指令 1— MOV 数据传送指令    2.— MVN 数据取反传送指令    3.— CMP 比较指令    4.— CMN 反值比较指令    5.— TST 位测试 ...

  8. ARM指令解析

    今天我来总结一下arm指令的学习,今天我不会对所有的arm指令进行一一的解析,在这里希望大家去看arm汇编手册,这个手册的中文版我放在了http://download.csdn.net/detail/ ...

  9. ARM的九种寻址方式

    文章目录 1.立即数寻址 2.寄存器寻址 3.寄存器间接寻址 4.寄存器偏移寻址 5.寄存器基址变址寻址 6.批量寄存器寻址 7.相对寻址 8.堆栈寻址 9.块拷贝寻址 寻址方式就是CPU根据指令中的 ...

随机推荐

  1. DotNetOpenAuth使用笔记

    首先查了一些资料: DotNetOpenAuth源码 https://github.com/DotNetOpenAuth/DotNetOpenAuth 永远的阿哲分享的经验和Demo http://w ...

  2. Unity3D教程:茄子童萌會

    http://s.epb.idv.tw/han-shi-ku/unity Unity 0000 Unity3D學習之路 - C#學習筆記(一) 0001 Unity3D學習之路 - C#學習筆記(二) ...

  3. ABAP工作区,内表,标题行的定义和区别

         工作区域跟变量一样,是用来保存数据的.区别是变量只能从中保存一个数据.而工作区域可以存放多个.把多个数据合在一起就成工作区域了.下面我们来看看工作区域是如何定义的吧.定义有四种方法,如下:1 ...

  4. Centos6.5 gitlab安装使用

    公司从svn转到git做版本管理,我搜了一下网上git的服务器,包括gitosis,gitolite等.一开始我是用的是gitosis作为git服务器的,安装过程还算比较简单,整个服务使用python ...

  5. SQL函数创建错误

    [Err] 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration a ...

  6. OpenGL阴影,Shadow Mapping(附源程序)

    实验平台:Win7,VS2010 先上结果截图(文章最后下载程序,解压后直接运行BIN文件夹下的EXE程序): 本文描述图形学的两个最常用的阴影技术之一,Shadow Mapping方法(另一种是Sh ...

  7. CNN 逐层可视化 Ipython Notebook

    http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/00-classification.ipynb

  8. setup notifier actions in aodh alarm

    Aodh alarm NOTIFIER ==> alarm_actions URL: http://<host>/<action> NOTIFIER will resol ...

  9. iconv 失败

    网上的都是这样用的 代码如下:              $content = iconv("utf-8","gb2312",$content); 这样做其实也 ...

  10. js MATH

    MATH Math 对象用于执行数学任务. 无需创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法. Math 对象属性 var a=Math.E; //输出2.718281828459 ...