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. DataGridview 自动切换到 下一行

    if (m_dgvList.SelectedRows.Count > 0) { int intCurrApp = m_dgvList.SelectedRows[0].Index; if (int ...

  2. codeforces716E (点分治)

    Problem Digit Tree 题目大意 给一棵树,有边权1~9. 询问有多少个点对(i,j),将i--j路径上的数字依次连接后所形成新数字可以被k整除.gcd(K,10)=1 解题分析 点分治 ...

  3. 1.2 ASSEMBLY LANGUAGE

    People are much happier moving up the ladder,socially or even technically.So our profession has move ...

  4. centos安装与卸载postgresql

    1.卸载旧版本postgresql $ yum remove postgresql* 2.更新yum $ yum update 3.下载pgdg-centos92-9.2-6.noarch.rpm,或 ...

  5. Sep14学习笔记_pipe() & fork()

    第一次用博客园,昨晚编辑器一直没打开,今天打开了,把昨天的内容先补一下 关于parent和child之间的数据传输: If the parent wants to receive data from ...

  6. 2017 年值得一瞥的 JavaScript 相关技术趋势

    跨年前两天,Dan Abramov在Twitter上提了一个问题: JS社区毫不犹豫的抛出了它们对于新技术的预期与期待,本文内容也是总结自Twitter的回复,按照流行度降序排列.有一个尚未确定的小点 ...

  7. [非原创]Project facet Java version 1.8 is not supported解决记录

    原博地址:http://blog.csdn.net/dingchenxixi/article/details/51496998 一看知道是因为jdk版本不一致所导致,如何解决? 方法一: 选中项目 P ...

  8. 《Android深度探索HAL与驱动开发》第三章阅读心得

    Git是Linux内核代码对源代码进行管理的软件,他的各方面要优与其他同类的源代码管理软件. 安装Git后,查看Git文档在Linux下可以直接使用man命令看指令的帮助文档.安装git-doc后会安 ...

  9. python之读取cdv

    csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格: 就可以存储为csv文件,文件内容是:No.,Name,Age,Score1,Apple,1 ...

  10. 图片垂直居中 和 float

    //图片垂直居中, display:table-cell; vertical-align:middle;   不能和 css (float)元素共存,可以在元素外面多加一个层 css .th-left ...