您的位置:首页 > 其它

arm常用汇编指令和伪指令

2016-05-01 20:13 405 查看
arm常用汇编指令和伪指令

adr 和 ldr伪指令
adr是小范围的地址读取伪指令,ldr是大范围的读取地址伪指令。
adr r0, _start </span>@将指定地址赋到r0中
ldr r0, =_start </span>@将指定标号的值赋给r0
str 和 ldr指令
ldr r0 [r1] @将r1地址中的值赋值给r1
str r0 [r1] @将r0中的值赋值给r1所指的地址

bne 和 beq
cmp r1 ,r0
beq label @ 即当R1和r0相等的时候程序跳到标号label处执行
cmp r1 ,r0
bne label @ 即当R1和r0不相等的时候程序跳到标号label处执行

bic
bic r1 ,r1 #0xf @将r1的低4位清0 r1 = r1 & ~(0xf);

mrs
mrs r1 ,cpsr @将cpsr中的值读取到r1

// 开/关icache
mrc p15,0,r0,c1,c0,0;			// 读出cp15的c1到r0中
//bic r0, r0, #(1<<12)			// bit12 置0  关icache
orr r0, r0, #(1<<12)			// bit12 置1  开icache
mcr p15,0,r0,c1,c0,0;
stmfd sp!,{r0-r12}将寄存器r0~r2中的数据压人堆栈!说明最后堆栈指针更新
ldmfd sp!,{r0-r12}数据出栈将数据放入寄存器r0~r2中!说明最后堆栈指针更新
伪操作
.gobal	声明一个全局变量
.word 	 放置一个字数据
.section 定义一个段
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: