汇编之伪指令

文章目录

  • NOP伪指令

  • ADR伪指令

  • ADRL伪指令

  • LDR伪指令

  • ARM中伪指令并不是真正的汇编指令(cpu不认识),但这些伪指令在汇编编译器对源程序进行汇编处理时被替换成对应的一条或多条汇编指令。用于简化汇编编码工作

  • ARM中的汇编伪指令包括ADR、ADRL、LDR和NOP

NOP伪指令

  • NOP伪指令在汇编时将会被代替成ARM中的空操作,比如可能是"MOV R0,R0"指令等。NOP可用于延时操作

ADR伪指令

  • 小范围地址读取伪指令
z80 复制代码
adr{cond} register, expr
  • 作用:将基于PC的地址值读取到寄存器中。获得expr表达式对应代码在内存中的运行位置

ADRL伪指令

  • 中等范围地址读取伪指令。相较于ADR伪指令,可以读取更大范围的地址
  • 一般ADR伪指令读取范围为-10201020,而ADRL伪指令读取范围为-256K256K
  • ADRL伪指令在汇编时会被编译器替换成两条汇编指令

LDR伪指令

  • 大范围地址读取伪指令。它可以将一个32bit的常数或者一个地址值读取到寄存器中
  • 表现形式有两种,对应的用途也是两种
    • 第一种形式: 带 '=', 可以将非法的立即数放入寄存器
z80 复制代码
@语法格式
LDR{cond} register, = expr | label_expr
z80 复制代码
.text
.global _start

_start:
  mov r0, #10
  ldr r1, =0x1ff
  b .
.end
复制代码
- 第二种形式: 不带'=', 将标号代表的内存中的数据放入寄存器
z80 复制代码
LDR{cond} register, label_expr
z80 复制代码
.text
.global _start
_start:
  mov r0, #10
  ldr r1, =0x1ff
  ldr r2, test
  mov r3, #20
  b .
test:
  .word 0x12345678
.end
相关推荐
我在人间贩卖青春10 小时前
汇编之伪操作
汇编·伪操作
济61710 小时前
FreeRTOS基础--堆栈概念与汇编指令实战解析
汇编·嵌入式·freertos
myloveasuka11 小时前
汇编TEST指令
汇编
我在人间贩卖青春11 小时前
汇编编程驱动LED
汇编·点亮led
我在人间贩卖青春12 小时前
汇编和C编程相互调用
汇编·混合编程
myloveasuka1 天前
寻址方式笔记
汇编·笔记·计算机组成原理
请输入蚊子1 天前
《操作系统真象还原》 第六章 完善内核
linux·汇编·操作系统·bochs·操作系统真像还原
myloveasuka1 天前
指令格式举例
汇编·笔记·计算机组成原理
我在人间贩卖青春2 天前
汇编之分支跳转指令
汇编·arm·分支跳转