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
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 定义一个段
相关文章推荐
- 伸缩自如的时光轴实现——改进版
- Integer Break
- pair的用法
- 欢迎使用CSDN-markdown编辑器
- 学会这10招让你成为杰出的Java程序员
- 【leetcode】154. Find Minimum in Rotated Sorted Array II
- 求幂集的算法
- 笔试题43. LeetCode OJ (30)
- JavaScript的属性访问
- HDU 3678 2-SAT
- 幽灵按钮的实现
- Struts之OGNL
- Learning How to Learn
- TCP_Wrappers应用级防火墙介绍与配置
- 安装和使用IIS的URL重写工具
- 常用vim命令合集
- 在不看任何数学公式的情况下理解傅里叶分析
- 利用PHP绘图函数实现简单验证码功能
- ZkClient
- 20145337实验四Android开发基础