您的位置 首页 新能源

ARM中的汇编指令

BIC:ARM指令,对某些位,清零。先取反再相与。asm(BICr2,r2,#0x1f);##对R2的低5位清零。ORR:ARM指令,逻辑或asm(ORRr2,…

BIC:ARM指令,对某些位,清零。先取反再相与。

asm(“BIC r2, r2, #0x1f”); ##对R2的低5位清零。

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形式。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/264042.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部