【发布时间】:2020-06-07 10:07:58
【问题描述】:
有这个:
.text
.globl main
str:
.string "hello world"
len = .-str #a strange assignment
main:
mov $1, %eax
mov $1, %edi
movabs $str, %rsi
mov $len, %rdx
syscall
call exit
1) 这里是带冒号的str(正如我通常看到的那样),但随后len 由= 分配。我不认为这是因为str 是地址,len 是数字(因此类型不同),但为什么可以分配不同的方式?还是两个都是标签?
2) 为什么要使用mov str(%rip), %rsi,而我可以使用movabs $str, %rsi?
【问题讨论】:
标签: assembly x86-64 gnu-assembler