arm常用汇编指令和伪指令

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 定义一个段


猜你喜欢

转载自blog.csdn.net/he980725866/article/details/51291515