ARM Cortex-M instructions
| ARM Cortex-M | Thumb | Thumb-2 | Hardware multiply | Hardware divide | Saturated math | DSP extensions | Floating-point | ARM architecture | Core architecture | 
|---|---|---|---|---|---|---|---|---|---|
| Cortex-M0 | Most | Subset | 1 or 32 cycle | No | No | No | No | ARMv6-M | Von Neumann | 
| Cortex-M0+ | Most | Subset | 1 or 32 cycle | No | No | No | No | ARMv6-M | Von Neumann | 
| Cortex-M1 | Most | Subset | 3 or 33 cycle | No | No | No | No | ARMv6-M | Von Neumann | 
| Cortex-M3 | Entire | Entire | 1 cycle | Yes | Yes | No | No | ARMv7-M | Harvard | 
| Cortex-M4 | Entire | Entire | 1 cycle | Yes | Yes | Yes | Optional | ARMv7E-M | Harvard | 
| Cortex-M4F | Entire | Entire | 1 cycle | Yes | Yes | Yes | Yes | ARMv7E-M | Harvard | 
Note: The Cortex-M0 / M0+ / M1 doesn't include these Thumb instructions: 
CBZ, CBNZ, IT; nor does it include a divide instruction.
Note: The Cortex-M0 / M0+ / M1 only include these Thumb-2 instructions: 
DMB, DSB, ISB, MRS, MSR.
Note: If a smaller silicon die size is required, the Cortex-M0 / M0+ / M1 
can implement a smaller and slower multiply instruction.
All four Cortex-M cores implement a common instruction subset that consists of:
Thumb subset, Thumb-2 subset, and multiply.
The Cortex-M0 / M0+ / M1 include all older Thumb instructions, 
except new instructions (CBZ, CBNZ, IT) which were added in ARMv7-M architecture.
The Cortex-M0 / M0+ / M1 include a minor subset of Thumb-2 instructions 
(BL, DMB, DSB, ISB, MRS, MSR).
The Cortex-M0 / M0+ / M1 were designed to be the smallest size possible, 
thus having the fewest instructions of the Cortex-M family.
The Cortex-M3 adds 3 Thumb instructions and all Thumb-2 instructions, 
plus a 10-12 cycle hardware divide and saturated math instructions.
The Cortex-M4 adds DSP instructions and an optional single-precisionfloating-point unit.
If the Cortex-M4 has the floating point unit, then it is known as the Cortex-M4F.
| Instructions | Instruction size | Cortex M0 | Cortex M0+ | Cortex M1 | Cortex M3 | Cortex M4 | Cortex M4F | 
|---|---|---|---|---|---|---|---|
| ADC, ADD, ADR, AND, ASR, B, BIC, BKPT, BLX, BX, CMN, CMP, CPS, EOR, LDM, LDR, LDRB, LDRH, LDRSB, LDRSH, LSL, LSR, MOV, MUL, MVN, NOP, ORR, POP, PUSH, REV, REV16, REVSH, ROR, RSB, SBC, SEV, STM, STMIA, STR, STRB, STRH, SUB, SVC, SXTB, SXTH, TST, UXTB, UXTH, WFE, WFI, YIELD | 16-bit | Yes | Yes | Yes | Yes | Yes | Yes | 
| BL, DMB, DSB, ISB, MRS, MSR | 32-bit | Yes | Yes | Yes | Yes | Yes | Yes | 
| CBNZ, CBZ, IT | 16-bit | No | No | No | Yes | Yes | Yes | 
| ADC, ADD, ADR, AND, ASR, B, BFC, BFI, BIC, CDP, CLREX, CLZ, CMN, CMP, DBG, EOR, LDC, LDMA, LDMDB, LDR, LDRB, LDRBT, LDRD, LDREX, LDREXB, LDREXH, LDRH, LDRHT, LDRSB, LDRSBT, LDRSHT, LDRSH, LDRT, MCR, LSL, LSR, MLS, MCRR, MLA, MOV, MOVT, MRC, MRRC, MUL, MVN, NOP, ORN, ORR, PLD, PLDW, PLI, POP, PUSH, RBIT, REV, REV16, REVSH, ROR, RRX, RSB, SBC, SBFX, SDIV, SEV, SMLAL, SMULL, SSAT, STC, STMDB, STR, STRB, STRBT, STRD, STREX, STREXB, STREXH, STRH, STRHT, STRT, SUB, SXTB, SXTH, TBB, TBH, TEQ, TST, UBFX, UDIV, UMLAL, UMULL, USAT, UXTB, UXTH, WFE, WFI, YIELD | 32-bit | No | No | No | Yes | Yes | Yes | 
| PKH, QADD, QADD16, QADD8, QASX, QDADD, QDSUB, QSAX, QSUB, QSUB16, QSUB8, SADD16, SADD8, SASX, SEL, SHADD16, SHADD8, SHASX, SHSAX, SHSUB16, SHSUB8, SMLABB, SMLABT, SMLATB, SMLATT, SMLAD, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLALD, SMLAWB, SMLAWT, SMLSD, SMLSLD, SMMLA, SMMLS, SMMUL, SMUAD, SMULBB, SMULBT, SMULTT, SMULTB, SMULWT, SMULWB, SMUSD, SSAT16, SSAX, SSUB16, SSUB8, SXTAB, SXTAB16, SXTAH, SXTB16, UADD16, UADD8, UASX, UHADD16, UHADD8, UHASX, UHSAX, UHSUB16, UHSUB8, UMAAL, UQADD16, UQADD8, UQASX, UQSAX, UQSUB16, UQSUB8, USAD8, USADA8, USAT16, USAX, USUB16, USUB8, UXTAB, UXTAB16, UXTAH, UXTB16 | 32-bit | No | No | No | No | Yes | Yes | 
| VABS, VADD, VCMP, VCMPE, VCVT, VCVTR, VDIV, VLDM, VLDR, VMLA, VMLS, VMOV, VMRS, VMSR, VMUL, VNEG, VNMLA, VNMLS, VNMUL, VPOP, VPUSH, VSQRT, VSTM, VSTR, VSUB | 32-bit | No | No | No | No | No | Yes | 
ARM Cortex-M instructions的更多相关文章
- swddude -- A SWD programmer for ARM Cortex microcontrollers.
		Introducing swddude I love the ARM Cortex-M series of microcontrollers. The sheer computational po ... 
- Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors
		Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors The goal of the pro ... 
- 【ARM-Linux开发】ARM7 ARM9 ARM Cortex M3 M4 有什么区别
		ARM7 ARM9 ARM Cortex M3 M4 区别 arm7 arm9 可以类比386和奔腾, 不同代,arm9相比arm7指令集和性能都有所增强,arm7和arm9都有带mmu和无mmu的版 ... 
- 灵动微电子ARM Cortex M0 MM32F0010 UART1和UART2中断接收数据
		灵动微电子ARM Cortex M0 MM32F0010 UART1和UART2中断接收数据 目录: 1.MM32F0010UART简介 2.MM32F0010UART特性 3.MM32F0010使用 ... 
- 灵动微电子ARM Cortex M0 MM32F0010 Timer定时器中断定时功能的配置
		灵动微电子ARM Cortex M0 MM32F0010 Timer定时器中断定时功能的配置 目录: 1.Timer1高级定时器Timer3通用定时器Timer14基本定时器简介 2.Timer1高级 ... 
- 灵动微电子ARM Cortex M0 MM32F0010 GPIO 的配置驱动LED灯
		灵动微电子ARM Cortex M0 MM32F0010 GPIO的配置 目录: 1.前言 2.学习方法简要说明 3.要点提示 4.注意事项 5.MM32F0010系统时钟的配置 6.MM32F001 ... 
- ARM Cortex M3系列GPIO口介绍(工作方式探讨)
		一.Cortex M3的GPIO口特性 在介绍GPIO口功能前,有必要先说明一下M3的结构框图,这样能够更好理解总线结构和GPIO所处的位置. Cortex M3结构框图 从图中可以看出 ... 
- ARM Cortex M3(V7-M架构)硬件启动程序 二
		解析 STM32 的启动过程 解析STM32的启动过程 当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择.如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main ... 
- ARM Cortex M3(V7-M架构)硬件启动程序 一
		Cortex-m3启动代码分析笔记 启动代码文件名是STM32F10X.S,它的作用先总结下,然后再分析. 启动代码作用一般是: 1)堆和栈的初始化: 2)中断向量表定义: 3)地址重映射及中断向量表 ... 
- ARM Cortex Design Considerations for Debug
		JTAG was the traditional mechanism for debug connections for ARM7/9 parts, but with the Cortex-M fam ... 
随机推荐
- jQuery和CSS 3定制HTML 5视频播放器
			目前,随着越来越多的浏览器开始支持更多的HTML5新特性,开发者也逐渐关注HTML5的开发.在众多HTML5的新特性中,视频方面的新特性是 很值得开发者和用户关注的.现在,只需要有支持HTML5的浏览 ... 
- java jxl 向Excel中追加数据而不覆盖原来数据的例子
			向先原来就有数据的Excel写数据是不会覆盖原有的数据,只是在追加数据. public class Excel { public Excel() { } public void ... 
- 搭建Eclipse、Resin Web开发环境
			搭建Eclipse.Resin Web开发环境 一.当然是安装java开发环境 参看: Java环境的搭建 http://www.cnblogs.com/ghj1976/archive/2010/04 ... 
- 镜头覆盖范围FOV 的规划与FOV去四角
			本文纲要: 规划FOV的原因 FOV去四角 简单的声明 FOV查找思路 查找FOV的代码 TNoFourCornersRect结构及Contains函数 判断两个矩形是否相交 延伸与拓展 本文内容: ... 
- 事务处理:  databse jdbc  mybatis spring
			事务的认识需要一个相当漫长的流程,慢慢在实践中理解,然后在强化相关理论基础. 数据库中的事务: 传统的本地事务处理都是依靠数据库自身事务处理能力,而事务本身是传统关系型数据库的基石.简单来说事务就是一 ... 
- AI钻石天鹅风格
			第1步:描绘轮廓 你需要对你的设计有个总体的概念.利用照片和钢笔工具(P)描出轮廓.把填充颜色设为无,描边颜色设为黑色,1pt 粗细.这将作为你完成剩下设计的指导.编组 (Ctrl+G)你的线条并在图 ... 
- kali 重置 mysql 密码
			You can recover MySQL database server password with following five easy steps. Step # 1: Stop the My ... 
- HIve体系结构,hive的安装和mysql的安装,以及hive的一些简单使用
			Hive体系结构: 是建立在hadoop之上的数据仓库基础架构. 和数据库相似,只不过数据库侧重于一些事务性的一些操作,比如修改,删除,查询,在数据库这块发生的比较多.数据仓库主要侧重于查询.对于相同 ... 
- Html.DropDownListFor
			@Html.DropDownListFor(x => x.WillAttend, new[] { new SelectListItem() {Text = "Yes, I'll be ... 
- spring的annotation-driven配置事务管理器详解
			http://blog.sina.com.cn/s/blog_8f61307b0100ynfb.html ——————————————————————————————————————————————— ... 
