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.
New to topics? Read the docs here!