汇编指令(ARM体系机构)

常用汇编指令
1、ARM状态下的通用寄存器和程序计数器
(1)ARM状态下各工作模式使用的寄存器

(2)当前程序状态寄存器(CPSR)

N:结果是否为负数
Z:运算结果是否为0
C:进位/借位/移位溢出
V:溢出标志(Overflow)
I:中断禁止位
F:快中断禁止位
T:CPU状态位;置位时,CPU处于Thumb状态;否则处于ARM状态。
M4~M0:工作模式位
中断禁止位:I位和F位属于中断禁止位。它们被置位时,IRQ中断、FIQ中断分别被禁止。

2、ARM指令在机器中的表示格式是用32位的二进制数表示。
ARM中有一条指令为:ADDEQS  R0,R1,#8;

ARM指令分为5个域:
第1个域:4位[31:28]的条件码域,4位条件码共有16种组合。
第2个域:指令代码域[27:20],除了指令编码外,还包含几个很重要的指令特征和可选后缀的编码.
第3个域:地址基址Rn,是4位[19:16],为R0~R1516个寄存器编码。
第4个域:目标或源寄存器Rd,是4位[15:12],为R0~R1516个寄存器编码。
第5个域:地址偏移或操作寄存器、操作数区[11:0].
上述指令5个域为0000  0010  1001 0001 0000 0000 0000 1000,十六进制代码为0291008H,指令功能是将R1和8相加,结果放入R0中。

3.分支指令(跳转):
一种是使用分支指令;另一种是直接向程序计数器PC(R15)写入目标地址值。
通过向程序计数器PC写入跳转地址值,可以实现在4GB的地址空间中的任意跳转,在跳转之前,结合使用“MOV LR,PC”等类似指令,可以保存将来的返回地址值,从而实现在4GB连续的线性地址空间的子程序调用;
而使用分支指令时跳转空间受到限制。

汇编指令格式:
<opcode> {<cond>} {S} <Rd>,<Rn>{,<OP2>}
格式中<>的内容必不可少,{ }中的内容可省略。
  • <opcode> 表示操作码
  • {<cond>} 表示指令执行的条件域,如EQ、NE等。
  • {S} 决定指令的执行结果是否影响CPSR的值,使用该后缀则指令执行的结果影响CPSR的值,否则不影响。
  • <Rd>表示目的寄存器
  • <Rn>表示第一个操作数,为寄存器
  • {,<OP2>}表示第二个操作数,可以是立即数、寄存器或寄存器移位操作数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值