(2)ARM Cortex-M3指令集

汇编语言的概念:指用助记符代替操作码,用地址符号或者标签代替地址码的编程语言
优点:可以直接访问硬件目标代码简短,执行速度快;
缺点:可移植性可读读性差;
ARM中流水线执行指令的基础就是指令的长度需要不保持一样,因此16位指令和32位指令需要切换状态; 几乎所有的指令执行都是有条件的执行; 寄存器与内存之间交互数据采用专用指令集; ARM基本指令集格式:
<opcode> {<cond>}(s)<Rn> {,<operand2>}

其中<>号内的项是必须的,{}号内的项目是可选的,各项的说明如下:
“ - opcode:指令助记符; - cond:执行条件; - S:是更新CPSR寄存器的值; - Rd:目标寄存器; - Rn:第一个操作数的寄存器; - operand2:第二个操作数; “`立即数是使用特殊的计数法实现在12位的内存上存储很大的地址数据,立即数有专用的编码队列;
MVN将数据按位取反,之后在使用echo $path查看环境变量
关中断

MOV    R0,          #1
MSR    PRIMASK,     R0 

使用CPS指令关中断

CPSID   i       ;关中断

开中断

MOV     R0,          #0
MSR     PRIMASK,     R0

使用CPS指令开中断

CPSIE     i      ;开中断

在更精巧的设计中,需要对中断掩蔽进行的更加细腻的控制—–只遮蔽优先级低于某一阈值的中断—-它们的优先级在数值上大于等于某个数。那么这个数存储在BASEPRI中,不过如果往BASEPRI中写0,则另当别论—BASEPRI将停止遮蔽任何中断 如我们需要遮蔽优先级低于0x60的中断;

MOV    R0,       #0x60
MSR    BASEPRI,  R0

如果需要取消BASEPRI对中断的遮蔽,则示例代码如下:

MOV     R0,       #0
MSR     BASEPRI,  R0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Achou.Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值