全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 处理器/DSP >

学习 Cortex-M0+指令集

时间:2023-05-27 20:42

人气:

作者:admin

标签: cortextM0+ 

导读:Cortex M0+ 汇编指令集学习...

最近基于cortex-M0/M0+的mcu增多了,学习了大佬凌烟慕鱼的作品,这里记下来,以便以后学习。

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(断点)
伪指令

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信