ARM System Developer's Guide 学习笔记 3.1 数据处理指令

数据处理指令(Data Processing Instructions)

数据处理指令操控着寄存器中的数据。

包含:数据移动指令,算术运算指令,逻辑运算指令,比较指令和乘法指令。大多数数据处理指令可以通过桶型移位器处理其中一个操作数。

ARM指令集中最大的一族,这族指令的格式相同。如果在数据处理指令中看到 ‘S’ 后缀,那么它将在cpsr(计算机程序状寄存器)中更新标志位。移动和逻辑指令更新 进位标志位 ‘C’ ,取反标志位 ‘N’ , 零标志位 ‘Z’‘C’ 的设置来自上一位移出的结果 ; 将**‘N’** 设置在在结果的31bit上;如果结果为零,设置 ‘Z’

记住,这是一个 load / store架构,这些指令只操作寄存器,而不是内存。

他们在两个操作数上执行特定的操作,并将结果存放到目标寄存器。
第一个操作数总是一个寄存器Rn。
第二个操作数通过barrel shifter送往ALU。

1. 数据移动指令 (MOVE INSTRUCTIONS)

  • 概念:copy N( 寄存器/值 ) 到 目标寄存器 Rd。
  • 常用数据移动指令 及其 语法

常用数据移动指令 及其 语法

  • 例子:
    MOV指令示例

2. 桶型移位器 BARREL SHIFTER

  • 移位:上述N 在 MOV指令中是一个简单的寄存器,它也可以是一个经过桶型移位器预处理的寄存器Rm。

    数据处理指令在算数逻辑单元(ALU内执行),ARM一个独特的特点是可以将32位二进制数在进入ALU之前进行移位,增加了数据处理的灵活性。

  • ARM 微处理器内嵌的桶型移位器(Barrel Shifter),支持数据的各种移位操作

  • 不需要移位器的指令:MUL(multiply),CLZ(count leading zeros), QADD(signed saturated 32-bit add)

  • ALU 和 BARREL SHIFTER
    如图:寄存器Rn不经过预处理进入到ALU。Rm经过预处理进入移位器以后再进入ALU。
    ALU 和 BARREL SHIFTER

  • 例子:寄存器Rm 移动到目标寄存器之前进行逻辑左移logicla shift left

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kxwang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值