CortexM3/M4(3)-指令集

1.前言

什么是指令集?是指令的集合。
那么什么是指令?指令是指挥机器工作的指示和命令。程序就是一系列按一定顺序排列的指令,执行程序的过程是计算机的工作过程。
指令集主要分为复杂指令集(CISC)和精简指令集(reduce instruction set computing 简称RISC),复杂指令集的代表x86架构,精简指令集的代表ARM架构。

2. RISC的介绍

2.1 RISC是什么?

RISC的出现是为了简化CISC指令集的使用,提高处理器的性能,简化设计。
测试表明,CISC中常用的指令集为20%,使用频率是80%,RISC就是利用20%的指令集实现想要的功能,做到以最少的技能干更多的活。这样看来,二八定律应用在方方面面,学科之间看似毫不相干,实则总可以找到共通性。

2.2 与CISC的比较

RISC相对于CISC:

  1. 指令格式统一,种类少
  2. 寻址方式少,处理速度高
  3. 指令的长度固定,而CISC是不等长指令
  4. 处理能力一般不及CISC,毕竟CISC指令多,实现的功能也多
    下表可很好的总结两者的差异
    在这里插入图片描述

3. ARM指令集

3.1 ARM指令集的发展

前面说ARM指令集是RISC的一种,ARM指令集中也有子集,Thumb指令集就是arm指令集中的16位指令集,是arm指令集的压缩形式,支持通用功能。
Thumb-2是Thumb指令集的发展,支持16位和32位指令集,是arm和thumb的一个折衷。
总结来说,arm指令集虽然是精简指令集,但是由于都是32位,有些指令用起来就是大材小用,浪费资源,所以就想出来用16位指令集,但是又发现,16位对于有些指令做不到小材大用,所以又想办法,而arm和Thumb转换使用又浪费时间,所以就想出Thumb-2指令集,此所谓中庸之道。
这里的16位指的是指令长度,指令长度是指令中包含的二进制代码位数。
下图是arm指令集演化图。
在这里插入图片描述
下图是对应的架构发展图:
在这里插入图片描述

3.2 Cortex-M指令集

下图是Cortex-M处理器的指令集简图。
在这里插入图片描述
下图是Cortex-M指令集,看起来多且繁杂,放在这里只是方便查看。
在这里插入图片描述

4.指令集基本内容

4.1 ARM指令集的分类

ARM指令集主要有6类:

  1. 跳转指令
  2. 数据处理指令(包括数据传送指令(如mov),逻辑运算指令(加减乘除与或等)和比较测试指令)
  3. 程序状态寄存器传输指令
  4. Load/Store指令(load是将内存中的数据读到寄存器中,store是将寄存器的值存到内存里)
  5. 协处理器指令
  6. 异常中断指令

协处理器指令指以下几种
在这里插入图片描述

4.2 CortexM3/M4指令的分类

CortexM3/M4指令集主要基于Thumb-2指令集,有以下几种:

  1. 处理器内传送数据(主要是把数据放入寄存器或者寄存器之间传数)
  2. 存储器访问(往存储器里读写数据)
  3. 算术运算(主要是加减乘除运算)
  4. 逻辑运算(与或非等逻辑操作)
  5. 移位运算(左右移)
  6. 转换运算(字节展开为字,反转字中的字节位置)
  7. 位域处理(对位进行处理)
  8. 乘累加(MAC)
  9. 程序流控制(包括跳转,调用,条件执行等)
  10. 比较和测试指令
  11. 饱和运算(限制数据的幅值)
  12. 储存器屏蔽(确定存储器访问的顺序)
  13. 异常相关指令(指中断或者其他异常情况)
  14. 休眠模式指令
  15. 其他

何为反转和展开?按下图理解。
在这里插入图片描述

4.2 Cortex-M4特有指令集

  1. SIMD(单指令多数据)和打包指令
  2. 饱和运算
  3. 浮点指令

参考文献

《ARM Cortex-M3与Cortex-M4权威指南》
《ARM体系结构与编程》

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cortex-M3Cortex-M4是ARM架构的微控制器。它们广泛应用于嵌入式系统和物联网设备中,具有高性能、低功耗和强大的性能优化能力。 Cortex-M3Cortex-M4使用的指令集是ARMv7-M架构,其中包含了大量的指令,用于实现各种功能和操作。下面是这两种微控制器常用的指令集: 1. 数据处理指令:这些指令用于对数据进行处理和操作,比如加法、减法、移位等。Cortex-M3Cortex-M4支持32位整数和浮点数的处理指令,可以高效地执行各种数学运算。 2. 控制指令:这些指令用于控制程序的流程,比如条件判断、跳转和函数调用等。Cortex-M3Cortex-M4支持分支指令、循环指令和中断指令,可以实现灵活的控制流程和异常处理能力。 3. 存储器访问指令:这些指令用于对存储器进行读写操作,包括读取数据、存储数据和移动数据等。Cortex-M3Cortex-M4支持多种不同的存储器访问指令,包括字节访问、半字访问和字访问等,可以高效地操作各种类型的存储器。 4. 特殊功能寄存器指令:这些指令用于对特殊功能寄存器进行读写操作,包括配置系统控制寄存器、中断寄存器和电源管理寄存器等。Cortex-M3Cortex-M4提供了一套完整的特殊功能寄存器指令集,方便对系统进行配置和管理。 总结来说,Cortex-M3Cortex-M4常用的指令集主要包括数据处理指令、控制指令、存储器访问指令和特殊功能寄存器指令。这些指令可以满足微控制器在嵌入式系统和物联网设备中的各种需求,实现高效、低功耗的数据处理和控制功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值