Cortex M0+保留了Cortex-M0的全部56个指令。
根据功能可以将Cortex-M0+处理器的指令化为以下几组
在处理器内移动数据
MOV,MRS(move special register to register),MSR
存储器访问
LDR(LDR,LDRH,LDRB),STR(STR,STRH,STRB),LDM,LDMIA(基地址寄存器会更新),STMIA
栈空间访问
PUSH,POP(都可以用来操作多个寄存器,SP的值=栈顶的数据的地址值+4)
算数运算
ADD,ADDC(带进位的加法),SUB,SBC(带借位的减法),MUL,CMP,CMN(负数比较)
逻辑运算
AND,ORR(逻辑或),EOR(逻辑亦或),BIC(逻辑位清除),MVN(逻辑位取反),TST(位与)
移位和循环操作
ASR(最高位不变,最后一位移出位到APSR中的进位标志),LSL,LSR,ROR(循环右移)
展开和顺序反转操作
REV(字节反转),REV16(半字内的反转),REVSH(低半字内的字节顺序反转,并进行有符号展开)这些反转指令通常用于大小端系统之间数据转换。
SXTB(对字数据中的最低字节进行有符号展开),SXTH,UXTB(对字数据中的最低字节进行无符号展开),UXTH
符号根据第7位或者第15位来决定
程序流控制
B(无条件跳转),B< cond ><标号> (条件跳转,有14个可选cond后缀),BL(跳转并将返回地址存储到LR),BX(跳转并根据寄存器的值第0位修改处理器状态)
一般使BL调用子函数,BX LR返回
存储器屏障指令
DMB,DSB,ISB
这些指令用于复杂的存储器系统。Cortex-M0只有一个存储器接口连接到存储器系统,并且系统总线接口上没有缓存,所以这些指令一般用不到。但是还是支持3个存储器屏障指令
- 异常相关指令
SVC 请求管理调用,一般用于系统服务的入口或者API
CPS 使能或者禁止中断
- 其他功能
NOP,BKPT(断点)
- 伪指令
Cortex-M0+的指令集的详细解释见:arm官网 Cortex-M0+内核介绍
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
它具有简单的指令集、高效的处理能力和小巧的内存需求,适合于各种小型物联网设备、消费电子产品和工业控制应用。Cortex-M0+的特点包括:低功耗模式、硬件浮点支持(可选)、快速中断响应以及与Cortex-M系列的软件...
本文件包含《DDI0484C_cortex_m0p_r0p1_trm》《DUI0662B_cortex_m0p_r0p1_dgug》《Cortex-M0+_Software_Developers_Errata_Notice_v4》用户手册、调试手册、开发手册
在讨论指令长度和指令周期数时,需要注意到Cortex-M0处理器支持两种指令集:Thumb-16指令集和Thumb-32指令集。对于大多数操作,Cortex-M0使用的是16位的Thumb指令集,它能够在单个指令周期内执行,并且具有较小的...
l 深度剖析系统模型、指令集以及中断处理,以利于理解ARM Cortex-M0与Cortex-M0+的工作方式; l 综合运用汇编语言和C语言实现的丰富的ARM Cortex-M0与Cortex-M0+编程案例,有助于快速动手实践; l 系统论述软件的...
它具有简洁的指令集,优化的硬件结构,以及对实时操作系统的良好支持,使得Cortex-M0+成为微控制器市场的热门选择。 飞思卡尔FRDM-KL25Z评估板是一个强大的开发工具,它配备了MCU、调试接口、多种外设接口(如USB、...
它采用了ARMv6-M架构,提供简单的指令集和高效的操作,适合于资源受限的设备。其主要特点包括: 1. **小巧的内存需求**:Cortex-M0设计紧凑,对RAM和ROM的需求较小,使得它成为小型嵌入式系统的理想选择。 2. **高...
《Cortex M0+ 技术参考手册》是针对ARM Cortex-M0+微控制器内核的技术文档,详细介绍了Cortex-M0+架构的特点、指令集、寄存器配置等内容,为开发者提供全面深入的理解和支持。该手册由ARM公司编写并版权所有,版本号...
2. **Thumb-2指令集**:虽然Cortex-M0没有完整的ARM指令集,但它支持Thumb-2指令集,这意味着它可以执行大多数基于Thumb-2的代码,同时保持较低的功耗。 3. **中断管理**:Cortex-M0支持嵌套向量中断控制器(NVIC)...
Cortex M0+通用用户手册主要介绍了ARM公司的一款微控制器核心——Cortex-M0+,包括它的处理器架构、指令集和核心外设。下面我们将详细阐述这些知识要点。 首先,我们需要明白ARM公司是一个英国的微处理器架构和软件...
Cortex-M0简化了架构设计,使其易于实现,同时也保留了ARM Cortex-M系列内核的基本特性,比如Thumb-2指令集和硬件支持的中断。 #### 二、ARM Cortex-M0的特点 1. **低功耗:** Cortex-M0的设计重点之一是降低功耗,...
ARM Cortex-M0指令集是ARM公司设计的针对微控制器的处理器架构的一部分,它被广泛应用于嵌入式系统。ARM Cortex-M0处理器是ARMv6-M架构的一种实现,采用32位RISC(精简指令集计算机)架构。在这一系列指令集中,ARM ...
本书既有ARM Cortex-M0处理器内核、体系结构及其应用的详尽论述,也有指令集、编译器、软件开发的基本论述,甚至也涵盖如何定位程序代码中的错误和软件移植等方面的知识。本书适合的读者对象包括:嵌入式产品设计...
1. **RISC架构**:Cortex-M0基于精简指令集计算机(RISC)设计理念,拥有高效能和低功耗的平衡。 2. **Thumb-2指令集**:使用了Thumb-2指令集,它是一个16/32位混合指令集,提高了代码密度,降低了内存需求。 3. **...
在指令集方面,Cortex-M0提供了丰富的指令集汇总,并且文档中还提及了内部函数和指令描述,这些是实现程序功能时的基础。存储器访问指令部分介绍了处理器如何进行数据读取和存储操作,而跳转和控制指令部分则讲解了...
Cortex-M0是ARM公司设计的一款面向微控制器市场的32位处理器,它秉承了ARM架构的高性能和低功耗的特点,同时提供了丰富的指令集和灵活的系统设计选项,适用于广泛的嵌入式应用。 在本书中,读者可以了解到Cortex-M0...
根据所提供的文件信息,以下是关于“2013最新的Cortex-M0+ Generic user guide”这本书中的相关知识点: 1. 书的版权信息和所有权声明:文档是ARM公司版权所有,首次发布于2012年4月,并声明文档中使用的注册商标或...
ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为各种不同的市场提供服务。Cortex系列属于ARMv7架构,这是到2010年为止ARM公司最新的指令集架构...
- **基于ARMv6-M指令集**:Cortex-M0+采用的是ARMv6-M架构,这是一种专为嵌入式应用优化的精简指令集计算(RISC)架构。 - **Thumb-2指令集**:支持Thumb-2指令集,这意味着它可以执行更高效的代码,同时保持良好的...
- **Thumb-2指令集**:Cortex-M0采用的是 Thumb-2 指令集,这是一种16/32位混合指令集,相比传统的ARM指令集,它在代码密度和执行效率上有显著提升。 - **硬件浮点支持**:Cortex-M0不包含硬件浮点单元,但可以...