ARM指令系统


算术逻辑指令

    TEST 位测试指令

    TEQ  相等测试指令

    ADD  加法指令
    ADD指令将<Shift_operand>表示的数据与寄存器<Rn>中的值相加,并把
    结果保存到目标寄存器<Rd>中,同时根据操作的结果更新CPSR中相应的条件标志位。
语法格式:
ADD {<cond>} {S} <Rd>, <Rn>, <shifter_operand>
其中:<cond>为指令执行的条件码。当<cond>忽略时指令为无条件执行。
S 决定指令的操作是否影响CPSR中条件标志位的值。
<RD>寄存器为目标寄存器。
      <Rn>寄存器为第一个源操作数所在的寄存器。
      <shifter_operand>为第二个操作数
示例:
ADD Rx, Rx, #1      ;Rx=Rx+1
ADD Rd, Rx, LSL #n ;Rx=Rx+Rx*(2*n)=Rx*(2*n+1)  (?)
ADD Rs, PC, #offset ;生成基于PC的跳转指针
    SUB   减法指令
SUB指令从寄存器<Rn>中减去<Shifter_operand>表示的数值,并把结果保存到目标寄存器<Rd>中,同时根据操作的结果更新CPSR中相应的条件标志位。
语法格式:
SUB {<cond>} {s} <Rd>, <Rn>, <Shifer_operand>
指令的使用
SUB Rx, Rx, #1   ;Rx=Rx-1

    RSB   逆向减法指令

    ADC   带位加法指令

    SBC    带位减法指令

    RSC    带位逆向减法指令

    AND    逻辑与操作指令
指令的使用
可用于提取寄存器中某些位的值。

    BIC     位清除指令
BIC指令将<shifter_operand>表示的数值与寄存器<Rn>的值的反码按位做逻辑与操作,并把结果保存到目标寄存器<Rd>中,同时根据操作的结果更新CPSR中相应的条件标志位。

    EOR    逻辑异或操作指令
指令的使用
可用于将寄存器中某些位的值取反。--将某一位与0做逻辑异或操作,该位值不变:将某一位与1做逻辑异或操作,该位值将被求反。


    ORR    逻辑或指令
指令的使用
可用于将寄存器中某些位的值设置为1。

    MUL  32位乘法指令

 

指令对状态寄存器的影响
if S==1 and Rd==R15 then
    CPSR=SPSR
else if S==1 then
    N flag=Rd[31]
    Z flag=if Rd==0 then 1 else 0
    C flag=shifter_carry_out
    V flag=unaffected




比较分支指令



 

数据总线与地址总线



内存访问指令

 

指令位图

 

识别机器指令

 

 

写的不是很全,以后再补吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值