arm汇编
来源:互联网 发布:尘埃3 mac g29设置 编辑:程序博客网 时间:2024/05/17 21:51
①mov r1,#0b0110
pic r1,#0b0100
此时r1的值为0b0010
pic执行掩码操作
pic r1,#0b0100
此时r1的值为0b0010
pic执行掩码操作
②tst 按位与 若为0置cpsr的zero位为1
③cmp r1,r2 r1-r2(cpsr)若小于0置n,等于0置zero
④bl用于保存当前函数入口地址到lr
mov r1,#2
cmp r1,#1
bl func1
....
func1:
mov r1,#2
mov r2,#3
mov pc,lr
mov r1,#2
cmp r1,#1
bl func1
....
func1:
mov r1,#2
mov r2,#3
mov pc,lr
⑤移位指令
mov r1,#0b1
mov r1,r1,lsl#2 @lsl左移指令
此时r1的值为0b100
mov r1,#0b11
mov r1,r1,ror#1 @ror循环的右移
此时r1的值为0x10000001
mov r1,#0b1
mov r1,r1,lsl#2 @lsl左移指令
此时r1的值为0b100
mov r1,#0b11
mov r1,r1,ror#1 @ror循环的右移
此时r1的值为0x10000001
⑥mrs操作cpsr(程序状态字寄存器)
mrs r0,cpsr
orr r0,0b100(orr,位与)
msr cpsr,r0
mrs r0,cpsr
orr r0,0b100(orr,位与)
msr cpsr,r0
⑦存储器访问指令(ldr,str等)
ldr(内存到寄存器)
str(寄存器到内存)
ldr(内存到寄存器)
str(寄存器到内存)
mov r1,#0x30001000
mov r0,#0xff
str r0,[r1](带[]表示间接寻址)
mov r0,#0xff
str r0,[r1](带[]表示间接寻址)
⑧机器码
0000(cond) 00(保留) 0 0000(opcode) 0(s) 0000(rn) 0000(rd) 000000000000(shifter_operand)
条件 保留位 标志位(0时源操作数 区分不同指令 是否影响cpsr 标明寄存器编号 源操作数,若为寄存器则为寄存器编号
为寄存器,1时为立即数)
⑨ldr伪指令保存大于8位的立即数
ldr r0,=0xfff
ldr r0,=0xfff
⑩操作协处理器C15
mrc p15,0,r0,c0,c0,0 @从协处理器寄存器读到通用寄存,读取型号
mcr ......@从通用寄存器写入协处理器寄存器
mrc p15,0,r0,c0,c0,0 @从协处理器寄存器读到通用寄存,读取型号
mcr ......@从通用寄存器写入协处理器寄存器
0 0
- ARM汇编
- ARM汇编
- ARM汇编
- arm汇编
- ARM汇编
- ARM汇编
- arm 汇编
- arm 汇编
- ARM汇编
- arm 汇编
- ARM汇编
- ARM 汇编
- arm 汇编
- ARM汇编
- ARM 汇编
- ARM汇编
- arm汇编
- ARM汇编
- 针对谷歌默认最小字体12px的正确解决方案 (css、html)
- 如何手工删除exe文件夹病毒
- C++知识
- javascript和java数组中去掉重复元素的方法
- cell中视频播放 视频录制
- arm汇编
- 收集的一些discuz插件常用插件。
- first
- C#XmlDocument无法读取utf-16文件
- 工作记录之Spring学习笔记(3)Bean作用域
- Java 中 final的用法
- PDFEdit.1393326241.exe 密钥
- 第二周 数据计算实现与顺序程序设计(一)
- Opencv学习笔记-----霍夫变换直线检测及原理理解