汇编之伪指令

文章目录

  • 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
相关推荐
iCxhust10 小时前
8086汇编 word ptr
汇编·单片机·嵌入式硬件·微机原理·8088单板机
大阳12319 小时前
ARM.9(RGBLCD,PWM)
c语言·开发语言·汇编·单片机·嵌入式硬件·pwm·rgblcd
2301_789015622 天前
Linux基础开发工具一:软件包管理器、vim编辑器
linux·服务器·c语言·汇编·c++·编辑器·vim
是星辰吖~3 天前
X86反汇编_深度学习_基础二叉树
汇编
iCxhust3 天前
汇编返回指令ret iret retf区别
汇编·微机原理·8088单板机
怣疯knight4 天前
ida里打印python版本
汇编
是星辰吖~4 天前
X86反汇编_深度学习_栈反汇编分析
汇编
是星辰吖~4 天前
X86反汇编_深度学习_队列反汇编分析
汇编
say_fall4 天前
半导体存储器_从分类到Cache完全指南
汇编·微机原理·8086
是星辰吖~5 天前
x86反汇编_深度学习_单链表
汇编