参考ARM汇编语法/气体中的命名常量?

时间:2015-07-24 19:52:11

标签: linux assembly arm

当我尝试使用as(arm-linux-gnueabihf)编译此ARM asm时:

.data

len = 42

.text

    mov r0, #13

......它有效。但是,当我将#13替换为=len时:

.data

len = 42

.text

    mov r0, =len

我明白了:

Error: immediate expression requires a # prefix -- `mov r0,=len'

我尝过#len#=len,似乎都没有效果。如何在ARM语法的.data部分中引用.text部分中的命名常量?

更新

是的,我得到了段地址和常量混淆。对于后代,这里是统一语法的ARM hello world:

.syntax unified

.data

msg:
  .ascii      "Hello, ARM!\n"
len = . - msg

.text

.globl _start
_start:
  mov r0, 1
  ldr r1, =msg
  mov r2, len
  mov r7, 4
  svc 0
  mov r0, 0
  mov r7, 1
  svc 0

0 个答案:

没有答案