(2)ARM Cortex-M3指令集
匯編語(yǔ)言的概念:指用助記符代替操作碼,用地址符號(hào)或者標(biāo)簽代替地址碼的編程語(yǔ)言
優(yōu)點(diǎn):可以直接訪問(wèn)硬件目標(biāo)代碼簡(jiǎn)短,執(zhí)行速度快;
缺點(diǎn):可移植性可讀讀性差;
ARM中流水線執(zhí)行指令的基礎(chǔ)就是指令的長(zhǎng)度需要不保持一樣,因此16位指令和32位指令需要切換狀態(tài); 幾乎所有的指令執(zhí)行都是有條件的執(zhí)行; 寄存器與內(nèi)存之間交互數(shù)據(jù)采用專(zhuān)用指令集; ARM基本指令集格式:
<opcode> {<cond>}(s)<Rn> {,<operand2>}
其中<>號(hào)內(nèi)的項(xiàng)是必須的,{}號(hào)內(nèi)的項(xiàng)目是可選的,各項(xiàng)的說(shuō)明如下:
“ - opcode:指令助記符; - cond:執(zhí)行條件; - S:是更新CPSR寄存器的值; - Rd:目標(biāo)寄存器; - Rn:第一個(gè)操作數(shù)的寄存器; - operand2:第二個(gè)操作數(shù); “`立即數(shù)是使用特殊的計(jì)數(shù)法實(shí)現(xiàn)在12位的內(nèi)存上存儲(chǔ)很大的地址數(shù)據(jù),立即數(shù)有專(zhuān)用的編碼隊(duì)列;
MVN將數(shù)據(jù)按位取反,之后在使用echo $path查看環(huán)境變量
關(guān)中斷
使用CPS指令關(guān)中斷
CPSID i ;關(guān)中斷開(kāi)中斷
MOV R0, #0 MSR PRIMASK, R0使用CPS指令開(kāi)中斷
CPSIE i ;開(kāi)中斷在更精巧的設(shè)計(jì)中,需要對(duì)中斷掩蔽進(jìn)行的更加細(xì)膩的控制—–只遮蔽優(yōu)先級(jí)低于某一閾值的中斷—-它們的優(yōu)先級(jí)在數(shù)值上大于等于某個(gè)數(shù)。那么這個(gè)數(shù)存儲(chǔ)在BASEPRI中,不過(guò)如果往BASEPRI中寫(xiě)0,則另當(dāng)別論—BASEPRI將停止遮蔽任何中斷 如我們需要遮蔽優(yōu)先級(jí)低于0x60的中斷;
MOV R0, #0x60 MSR BASEPRI, R0如果需要取消BASEPRI對(duì)中斷的遮蔽,則示例代碼如下:
MOV R0, #0 MSR BASEPRI, R0總結(jié)
以上是生活随笔為你收集整理的(2)ARM Cortex-M3指令集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【2016年第5期】基于征信大数据分析的
- 下一篇: 时序图示例