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. ae学习

    Ae           提供者CoSA 1993年1月 版本1.0 代号Egg 主要加入法人功能layered compositing with mask, effect, transforms, ...

  2. php判断json对象是否存在的方法

    在实际测试中php读取json数组时 使用简单的 if 或者 array_key_exists 去判断对象是否存在是会报错的,以下是google搜寻的正确判断方法 实际上出现报错只是我对php还不是很 ...

  3. [翻译] LTE/LTE-Advanced for Mobile Broadband-10.4

    10.4 下行L1/L2控制信令 上下行信道的数据传输,需要特定的“下行控制信令”提供支持.下行控制信令通常被称为“下行L1/L2控制信令”,这表示该控制信令部分来自物理层(L1),部分来自MAC层( ...

  4. 用sql语句建表

    CREATE TABLE USER (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(30) NOT NULL, p ...

  5. 2015.10.15night

    #include<stdio.h> main() { int x,y; scanf("%d",&x); if(x>0)y=1; else {if(x< ...

  6. Unix系统小知识(转)

    Unix操作系统的小知识 2.VI添加行号/翻页/清屏 .在对话模式时(即输完Esc再输入: ),输入“:set number”可以将编辑的文本加上行号.跟玩俄罗斯方块一样方便的上下左右移动箭头的快捷 ...

  7. ✡ leetcode 174. Dungeon Game 地牢游戏 --------- java

    The demons had captured the princess (P) and imprisoned her in the bottom-right corner of a dungeon. ...

  8. Nginx 配置 HTTP 强缓存

    server { listen 80; server_name tirion.me www.tirion.me; # note that these lines are originally from ...

  9. Java单例模式(转载)

    原文地址:1:http://www.cnblogs.com/hupp/p/4487521; 2:http://cantellow.javaeye.com/blog/838473 先罗列五种单例模式的实 ...

  10. java如何在eclipse编译时自动生成代码

    用eclipse写java代码,自动编译时,如何能够触发一个动作,这个动作是生成本项目的代码,并且编译完成后,自动生成的代码也编译好了, java编辑器中就可以做到对新生成的代码的自动提示? 不生成代 ...