ARM 嵌入式微处理器指令集(上)

教材:嵌入式系统及应用,罗蕾、李允、陈丽蓉等,电子工业出版社

目录:


ARM 嵌入式微处理器指令集

ARM 处理器实现的指令集

  • 32 位的 ARM 指令集和 16 位的 Thumb 指令集
  • ARM 处理器允许在 ARM 状态和 Thumb 状态之间进行切换和互操作,保证用户在运算性能和代码密度之间的选择的灵活性
  • 采用 16 位的 Thumb 指令集优势在于更高的代码密度和降低功耗
  • Thumb 指令集的代码一般是由编译器生成的而不是手动编写出来的

ARM 指令集的特点

  • 所有 ARM 指令都是 32 位定长的,内存中地址以 4 字节边界对齐,故 ARM 指令的有效地址最后两位总是 00
  • 加载 - 存储架构。除了专门的加载 - 存储类型的指令可以访问内存外,其余指令使用处理器内部寄存器的数据和立即数作为操作数
  • 提供一次加载和存储多个寄存器的指令:LDM 和 STM。这样,发生过程调用和中断处理时,只用一条指令即可把多个寄存器的内容保存到内存堆栈中
  • CPU 内核硬件中提供了桶形移位器,移位操作可以内嵌在其他指令中,即一条指令可在一个指令周期完成一个移位操作和一个 ALU 操作
  • 所有 ARM 指令都可以条件执行,其指令高四位是条件指示位,根据 CPSR 寄存器中的N、Z、C、V 决定该指令是否执行

Thumb 指令集的约束

  • 不使用条件执行,标志总是根据指令结果设置
  • 源寄存器和目标寄存器相同
  • 不使用 R8~R12 寄存器,只用低端寄存器
  • 指令中出现的常量有大小的限制
  • 不在指令中使用内嵌的桶形移位器

ARM v4T 架构指令体系

条件执行和标志位

  • 通过在指令后加上合适的条件标志位,ARM 指令可以条件执行
  • 减少了分支指令数目,增强了指令的代码密度和性能
  • 比较指令(CMP)默认影响标志位
  • 数据处理指令默认不会影响条件标志位,但是可在指令后加“S”(或其它条件位的)后缀,以实现标志位的置位
  • 条件执行的例子
    条件执行的例子
  • 指令条件码
    指令条件

数据处理指令

  • 算术运算: ADD ADC SUB SBC RSB RSC
  • 逻辑运算: AND ORR EOR BIC
  • 比较运算: CMP CMN TST TEQ
  • 数据传送: MOV MVN

  • 通用语法:<Operation>{<cond>}{S} Rd, Rn, Operand2

    • 第二个操作数可以为一个寄存器或者一个立
  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值