查看: 1134|回复: 0

ARM指令集概述

[复制链接]

该用户从未签到

发表于 2015-12-17 17:10:19 | 显示全部楼层 |阅读模式
分享到:

1.ARM指令集编码
ARM指令集是以32位二进制编码的方式给出的,大部分的指令编码中定义了第一操作数、第二操作数、目的操作数、条件标志影响位以及每条指令所对应的不同功能实现的二进制位。每条32ARM指令都具有不同的二进制编码方式,与不同的指令功能相对应,如图所示表示了ARM指令集编码。
2.条件执行
ARM的指令编码表中,统一占用编码的最高4[31:28]来表示条件码。每种条件码用两个英文缩写字符表示其含义,可添加在指令助记符的后面,表示指令执行时必须要满足的条件。ARM指令根据CPSR中的条件位自动判断是否执行指令。在条件满足时,指令执行;否则,指令被忽略。
例如,数据传送指令MOV加上条件后缀EQ后成为MOVEQ,表示“相等则执行传送”,“不相等则本条指令不执行”,即只有当CPRS中的Z标志为1时,才会发生数据传送。ARM指令集编码表列举了4位条件码的16种编码中能为用户所使用的15种,而编码1111为系统暂不使用的保留编码。
3.指令分类及指令格式
(1)      指令分类简述
ARM指令集是Load/Store型的,只能通过Load/Store指令实现对系统存储器的访问,而其他类型的指令时基于处理器内部的寄存器操作完成。
ARM指令集可分为6大类:数据处理指令、Load/Store指令、跳转指令、程序状态寄存器处理指令、协处理器指令和异常产生指令。
(2)      指令格式
ARM指令使用的基本格式如下:
<opcode>{<cond>}{S}        <Rd>,<Rn>,{<operand2>}
(3)基本指令格式说明
指令格式中所用的英文缩写符号说明如下:
Opcode          操作码;指令助记符,如LDRSTR等。
Cond              可选的条件码;执行条件,如EQNE等。
S                   可选后缀;若指定S,则根据指令执行结果更新CPSR中的条件码
Rd                 目标寄存器
Rn                 存放在第1操作数的寄存器。
operand22个操作数。
指令基本格式中“<>”和“{ }”的说明:
< >”内的项是必需的,例如,<opcode>是指令助记符,这是必须书写的。
{ }”内的(ˇˍˇ) 项是可选的,例如,{<code>}为指令执行条件,是可选项。若不书写,则使用默认条件AL(无条件执行)。
4.指令格式使用举例
指令格式举例如下:
LDR              R0[R1]              ;读取R1地址上的存储单元内容,执行条件AL
BEQ              DATAEVEN          ;条件执行分支指令,执行条件EQ,即相等则跳转到DATAEVEN
ADDS            R2,R1#1            ;加法指令,R2<-R1+1,影响CPSR寄存器(S
SUBNES        R2,R1#0x20       ;条件执行的减法运算,执行条件NER1-0x20->R2,影响CPSR寄存器。
凌阳教育,专注嵌入式人才培养13年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网

ARM指令集编码、.jpg
指令的条件码.JPG
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条



手机版|小黑屋|与非网

GMT+8, 2025-1-12 08:06 , Processed in 0.114244 second(s), 16 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.