编译这段程序:
global baby baby equ 0x30400 [section .text] mov eax,baby
nasm -f elf -o t.o t.asm
readelf -s t.o
Symbol table '.symtab' contains 4 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00000000 0 FILE LOCAL DEFAULT ABS t.asm 2: 00000000 0 SECTION LOCAL DEFAULT 1 3: 00030400 0 NOTYPE GLOBAL DEFAULT ABS baby
我一直以为equ定义只有在编译阶段才有效,原来它定义的是普通的符号,index是ABS。