26-ARM常用汇编指令

汇编格式:
label:instruction @ comment

  • label:标号
  • instruction:具体汇编指令
  • comment:注释内容

常用段名:

  • .text:代码段
  • .data:初始化的数据段
  • .bss:未初始化的数据段
  • .rodata:只读数据段
  • .section:自定义段

.section .vector
常见伪操作:

  • .global:定义全局标号
    .global _start
  • .align:字节对齐
    .align 2

寄存器间数据传输:

  • mov:寄存器数据(或者是立即数)拷贝到另一个寄存器
    mov r0,r1
    mov r0,#0x12
  • mrs:读程序状态寄存器
    mrs r0,cpsr
  • msr:写程序状态寄存器
    msr cpsr,r0
  • mrc:读写cp15协处理器
  • mcr:写cp15寄存器

内存与寄存器数据传输:

  • ldr:把内存数据(或者是立即数)加载到寄存器
    ldr r0, =0x80000000
    ldr r1, [r0]
  • str:把寄存器数据写入到内存
    ldr r0, =0x80000000
    str r1, [r0]

压栈和出栈

  • push:把寄存器列表存入栈中
    push {r0~r3, r12}
  • pop:从栈中恢复寄存器列表
    pop {r0~r3, r12}

跳转

  • b:跳转到目标地址
    b main
  • bl:跳转到目标地址,并把当前pc指针值保存在lr寄存器中
    bl main

算术运算指令

  • add:加法运算
    add r1,r2,r3
    add r1,r2
  • sub:减法运算
    sub r1,r2,r3
  • mul:乘法运算
    mul r1,r2,r3
  • udiv:除法运算
    udiv r1,r2,r3

逻辑运算

  • and:与
    and r1,r2,r3
    and r1,r2
  • orr:或
    orr r1,r2,r3
  • bic:位清除
    bic r1,r2,r3
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值