| 1 |
segment .text ;code segment |
| 2 |
global_start ;must be declared for linker |
| 3 |
|
| 4 |
_start: ;tell linker entry point |
| 5 |
mov edx,len ;message length |
| 6 |
mov ecx,msg ;message to write |
| 7 |
mov ebx,1 ;file descriptor (stdout) |
| 8 |
mov eax,4 ;system call number (sys_write) |
| 9 |
int 0x80 ;call kernel |
| 10 |
|
| 11 |
mov eax,1 ;system call number (sys_exit) |
| 12 |
int 0x80 ;call kernel |
| 13 |
|
| 14 |
segment .data ;data segment |
| 15 |
msg db 'Hello, world!',0xa ;our dear string |
| 16 |
len equ $ - msg ;length of our dear string |
| 17 |
|
| 18 |
;From https://www.tutorialspoint.com/assembly_programming/assembly_memory_segments.htm |