汇编之伪指令

文章目录

  • 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
相关推荐
水饺编程2 天前
AT&T 汇编语言学习笔记开篇语
c语言·汇编·c++
iCxhust2 天前
8088单板机VScode集成开发环境使用方法二(汇编版)
汇编·单片机·微机原理·8088单板机
·薯条大王2 天前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
txg6664 天前
VULOC:基于汇编切片的漏洞定位框架,精准锁定二进制中的危险代码
汇编·人工智能·深度学习·安全·网络安全
sunburn-5 天前
Java 队列全面详解:从入门到面试实战
java·开发语言·汇编·ide·idea
wechatbot88812 天前
企业微信API开发:登录-联系人查询-消息发送完整开发流程分享
汇编·微信·自动化·企业微信·ai编程·rpa
00后程序员张12 天前
iOS加固技术路线全面解析:Bitcode模式、源码模式与汇编模式对比及爱加密优势
android·汇编·ios·小程序·uni-app·cocoa·iphone
wechatbot88815 天前
解决企业微信官方 API 短板:iPad 协议全功能对接方案
java·汇编·windows·http·微信·企业微信
学逆向的17 天前
汇编——JCC指令
开发语言·汇编·网络安全
一只旭宝18 天前
【汇编入门】寄存器、MOV/LEA、JMP/CALL/RET、内存与指令本质
汇编