ARM指令集

ARM 可以用两套指令集:ARM指令集和Thumb指令集,其中ARM指令集是32bit,Thumb指令集是16bit。这里主要关注ARM指令集。

ARM指令在汇编程序中用助记符表示,一般ARM指令的助记符格式为:
{} {S} ,, (<>表示必须有,{}表示可有可无)
其中:
操作码,如ADD表示算术加操作指令;
{} 决定指令执行的条件域;
{S} 决定指令执行是否影响CPSR寄存器的值;
目的寄存器;
第一个操作数,为寄存器;
第二个操作数。
例如,指令 ADDEQS R1,R2,#5
该指令的编码格式为:
这里写图片描述

条件域
几乎所有的ARM指令都可以根据当前程序状态寄存器CPSR中标志位的值,有条件地执行。
ARM指令的条件域有16种类型。
CPSR寄存器的相关资料见
http://www.cnblogs.com/armlinux/archive/2011/03/23/2396833.html

指令主要有操作码和操作数,操作码直接在指令中,而操作数通常需要寻址获得。寻址分两种:指令寻址和数据寻址,寻找下一条将要执行的指令地址称为指令寻址,寻找操作数的地址称为数据寻址。指令寻址可以细分为顺序寻找和跳跃寻址:
指令寻址:
1、 顺序寻址可以通过程序计数器加1(这里的加一其实指的是一个机器字长,并非是真的加一个字节),自动形成下一条指令的地址;
2、 跳跃寻址则需通过程序转移类指令实现。跳跃的形式有三种:直接,相对和间接寻址
数据寻址:
1、 立即寻址:直接给出操作数
2、 寄存器寻址:速度快,指令长度短
3、 直接寻址:直接给出操作数的地址
4、 间接寻址:多级寻址时,所访问主存单元的最高位为1,说明里面存的还是下一级的地址,直到访问到最高位为0时,才是真正的操作数
5、 寄存器间接寻址:使用寄存器保存操作数在内存中的地址,访问次数少,指令短
6、 变址寻址:将变址寄存器Rx的内容与指令中给出的形式地址A相加,形成操作数有效地址。比如形式地址A是某内存块的起始地址,则无需改动指令,只需要改变Rx中存放的变址值,就可以访问A之后的内存地址。
7、 基址寻址:与变址寻址相反,寄存器中的内容是基址值,与指令中给出的位移量相加形成操作数地址。变址寻址是面向用户,用于访问字符串、向量和数组等成批数据;而基址寻址面向系统,主要用于逻辑地址和物理地址的变换。
8、 相对寻址:是基址寻址的一种变通,由程序计数器(PC)来提供基准地址,指令中的地址码作为位移量。位移量指出的是操作数和现行指令之间的相对位置。也就是说操作数的地址与指令地址之间总是相差一个固定值,操作数与指令在可用的存储区内一起移动,是与位置无关的代码。因为数据是相对指令的位置,而指令时相对第一条指令的位置,那么第一条指令加载在哪里,下面的指令和数据用相对位置就能够正确获得。
9、 页面寻址:这个是属于页式存储管理方法

指令类型:
1、 数据传送类
2、 运算类
3、 程序控制类
4、 输入输出类

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、 ARM微处理器有 7种工作模式,它们分为两类 非特权模式 、 特权模式 。其中用户模式属于 非特权模式 2、 ARM支持两个指令集, ARM核因运行的指令集不同,分别有两个状态 ARM 、 Thumb ,状态寄存器CPSR的 T 位反映了处理器运行不同指令的当前状态 3、 ARM核有多个寄存器,其中大部分用于通用寄存器,有小部分作为专用寄存器, R15 寄存器用于存储PC,R13通常用来存储 SP 4、 ARM处理器有两种总线架构,数据和指令使用同一接口的是 冯诺依曼 ,数据和指令分开使用不同接口的是 哈佛结构 1. 下列不是嵌入式系统特点的是: A. 系统内核小 B. 专用性强 C. 系统精简 D. 实时性要求不高 2. 关于ARM汇编和C语言混合编程下列错误的是: A.C语言中可以直接嵌入某些汇编指令 B. C语言中可以调用汇编的子程序 C. 汇编程序中可以调用C语言的函数 D. C语言嵌入的汇编指令时,不可以使用C的变量 3. 关于ATPCS规则,说法错误的是: A. 只能使用R0-R3来传递参数 B. R13为堆栈指针SP,需要保护 C. R14为连接寄存器,用于存放程序返回地址 D. 单字的返回值存放在R0 4. 关于交叉编译描述正确的是: A. 编译器运行在目标机,生成的可执行文件在宿主机上运行 B.编译器运行在宿主机,生成的可执行文件在宿主机上运行 C.编译器运行在目标机,生成的可执行文件在目标机上运行 D.编译器运行在宿主机,生成的可执行文件在目标机上运行 5. 建立嵌入式Linux开发环境中,使用Bootp协议的直接目的是: A. 分配宿主机的IP地址 B. 分配目标机的IP地址 C. 用于宿主机和目标机之间通讯 D. 用于监控目标机的运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值