知识目录
ARM指令分类及指令格式
ARM处理器支持32位的ARM指令集,也支持16位的Thumb指令集,从ARMv6开始,新的ARM处理器支持16/32位的Thumb-2指令集,二ARMv7-M仅支持Thumb-2
ARM指令分类
ARM微处理器的指令集可以分为分支指令、数据处理指令、程序状态寄存器(CPSR)处理指令、加载/存储指令、协处理器指令和异常产生指令六大类



ARM指令格式
指令基本格式
<opcode>{
<cond>}{
S} <Rd>,<Rn>{
<op2>}
其中<>为不可省略,{}为可以省略,opcode。cond与S之间没有分隔符,{S}与Rd之间用空格隔开

指令的条件域
指令的条件域:当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件地执行。当指令的执行满足条件时,指令被执行,否则指令被忽略。
每一条ARM指令包含4位的条件码,位于指令的最高4位[31:28]。条件码共有16种,每种条件码可用两个字符表示,这两个字符可以添加在指令助记符的后面与指令同时使用。例如,跳转指令B可以加上后缀EQ变为BEQ表示"相等则跳转”,即当CPSR中的Z标志置位时发生跳转。指令的条件码见下图:

移位操作

ARM指令的寻址方式
立即寻址
立即寻址也称为立即数寻址,是一种特殊的寻址方式,操作数本身就在指令中给出,只寻取出指令也就取到了操作数,这个操作数被称为立即数
寄存器间接寻址
寄存器间接寻址就是以寄存器中的值作为操作数地址,而操作数本身存放在存储器中,用于间接寻址的寄存器必须用[]括起来。[]可以理解为将寄存器中的内容读取为立即数
寄存器寻址
寄存器寻址就是利用寄存器中的数值作为操

本文详细介绍了ARM指令集的分类及格式,包括数据处理类指令、程序状态寄存器访问指令、分支指令、加载/存储指令等内容,并阐述了ARM汇编器所支持的伪指令。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



