Then come the most important symbols:
Num: Value Size Type Bind Vis Ndx Name
4: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 hello_world
5: 000000000000000d 0 NOTYPE LOCAL DEFAULT ABS hello_world_len
6: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 2 _start
hello_world
string is in the .data
section (index 1). It's value is 0: it points to the first byte of that section._start
is marked with GLOBAL
visibility since we wrote:global _start
in NASM. This is necessary since it must be seen as the entry point. Unlike in C, by default NASM labels are local.