新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM中的匯編指令

        ARM中的匯編指令

        作者: 時間:2016-11-20 來源:網絡 收藏
        BIC:ARM指令,對某些位,清零。先取反再相與。

        asm("BIC r2, r2, #0x1f"); ##對R2的低5位清零。

        本文引用地址:http://www.104case.com/article/201611/318770.htm

        ORR:ARM指令,邏輯或

        asm("ORR r2, r2, #0x10"); ##R2邏輯與0x10。

        MRS:asm("MRS r2, CPSR"); ##將CPSR的值加載到R2中。

        MSR:asm("MSR CPSR, r2"); ##將R2的值加載到CPSR中。

        asm(" SWI 0x0"); ##跳轉到軟件中斷函數,并轉換為SVC模式。

        LDR:{條件}目的寄存器 存儲器寄存器。將存儲地址所指的4個字節數據傳送到寄存器,其中尋址方式會有很多種。

        asm("ldr r0,=0xddeeaabb"); ##在這里ldr是一個偽指令,相當于move指令。

        asm("ldr r0, [r1]");##將存儲器地址為r1的一個字的數據加載到r0中。

        MRC與MCR:在處理器寄存器與協處理器寄存器之間交換數據。

        MRC {cond} coproc, opcode1, Rd, CRn, CRm {,opcode2}

        asm("mrc p15,0,r0,c1,c1,0"); ##在CRn, CRm均為c1, opcode均為0時,表示SCR

        (Secure Configuration Register),表示將c1的值賦值給r0.

        asm("mcr p15,0,r0,c1,c1,0"); ##將r0的值賦值給c1.

        asm("mcr p15,0,r0,c12,c0,0"); ##將r0的值賦值給c12,此時c12表示VBAR,

        Vector Base Address Register,存放異常時的入口地址。

        SMC:(Secure Monitor Call). asm(" SMC 0x0"); ##將ARM core切換到Trust Zone模式。

        asm("mov r2, r2, lsr, #4"); ##r2左移4位后,加載到r2中。

        asm("str r3, [sp, #-4]"); ##將r3中的數據加載到堆棧中,堆棧頂指針向前移4.

        asm("ldmia r0!, {r3-r10}"); ##ldmia多寄存器加載指令,將r0地址中的數據加載到r3中,且每次r0增加4.

        !表示,最終r0的值會改變。

        asm("SVC 0x0"); ##arm core轉為Supervisor模式。



        關鍵詞: ARM中匯編指

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 涟源市| 沙洋县| 河间市| 蓬莱市| 翁牛特旗| 黄梅县| 渭南市| 东明县| 准格尔旗| 渑池县| 习水县| 报价| 胶州市| 崇阳县| 洪雅县| 广南县| 武定县| 桃源县| 常宁市| 白朗县| 西峡县| 丽水市| 鹿邑县| 保定市| 连南| 蓬溪县| 龙山县| 顺平县| 西林县| 社会| 通渭县| 成武县| 丹棱县| 清徐县| 大埔县| 永宁县| 平遥县| 鱼台县| 南充市| 吉木乃县| 阿鲁科尔沁旗|