因此,我正在学习 ARM 汇编,并遇到了两种从内存加载数据的方法。
方法 1:使用“=”运算符
.section .data
number: .word 0x8
.section .text
.global _start
_start:
LDR R1, =number
LDR R1, [R1]
Run Code Online (Sandbox Code Playgroud)
方法 2:使用文字池
.section .data
number: .word 0x8
.section .text
.global _start
_start:
LDR R1, address_of_number
LDR R1, [R1]
address_of_number: .word number
Run Code Online (Sandbox Code Playgroud)
这两种方法都做同样的事情。它们加载number该.data部分中存在的地址,然后加载存储在该地址的实际值。
所以我想知道这两种方法有区别吗?我读到该=运算符与C中的类似。*那么使用Literal Pool whereexistsaddress_of_number来存储地址的目的是什么?