最近基于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 (条件跳转,有14个可选cond后缀),bl(跳转并将返回地址存储到lr),bx(跳转并根据寄存器的值第0位修改处理器状态)
一般使bl调用子函数,bx lr返回
存储器屏障指令
dmb,dsb,isb
这些指令用于复杂的存储器系统。cortex-m0只有一个存储器接口连接到存储器系统,并且系统总线接口上没有缓存,所以这些指令一般用不到。但是还是支持3个存储器屏障指令
异常相关指令
svc 请求管理调用,一般用于系统服务的入口或者api
cps 使能或者禁止中断
其他功能
nop,bkpt(断点)
伪指令
3款出色的Samsung型号来帮助您选择最好的手机
再起纷争 浅谈智能手机后盖材质的前世今生
固态电池研究:半固态已来,全固态还远吗?
谷歌MIT最新研究证明:高质量数据获取不难,大模型就是归途
什么是人脸识别,简介人脸识别系统的四大运用领域
学习 Cortex-M0+指令集
智能感知加速迈向柔性时代 汉威科技以此为契勇往直前
容百科技:已与日韩客户签订了合作备忘录
崇达召开战略元年启动会 亨通入选工信部年绿色工厂示范榜单
以色列证券监管局将禁止数字货币公司上市
小米Note3什么时候上市?小米Note3最新消息:小米Note3即将发布,加量不加价性价比惊人
负氧离子甲醛检测仪的应用/原理/特点/参数
喜讯丨梦想人科技入选“5G+工业互联网”八家重点企业之一
华为行业感知亮相第十六届安博会,斩获两项大奖
基于采样值差动原理实现的变频器电动机差动保护
6月LED照明出口景气指数为52.2,出口总额同比增长5%
关于人工智能语音技术的真正用途你知道多少
诺基亚专利再次收获胜仗,苹果和黑莓都败在他手
DIY投影液晶尺寸大小在实用性上的区别有哪些?
海目星激光蒋志东:动力电池企业采购锂电设备三大新需求