arm汇编

来源:互联网 发布:尘埃3 mac g29设置 编辑:程序博客网 时间:2024/05/17 21:51
①mov r1,#0b0110
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,#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
⑦存储器访问指令(ldr,str等)
ldr(内存到寄存器)
str(寄存器到内存)
mov r1,#0x30001000
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
⑩操作协处理器C15
mrc p15,0,r0,c0,c0,0  @从协处理器寄存器读到通用寄存,读取型号
mcr ......@从通用寄存器写入协处理器寄存器
0 0