diff --git a/hello_world.asm b/hello_world.asm new file mode 100644 index 0000000..cd4953a --- /dev/null +++ b/hello_world.asm @@ -0,0 +1,26 @@ +; +;"hello, world" in assembly language for Linux +; +;to compile: +; +;nasm -f elf hello.asm +;ld -s -o hello hello.o + +section .text + global _start ;must be declared for linker (ld) + +_start: ;tell linker entry point + + mov edx,len ;message length + mov ecx,msg ;message to write + mov ebx,1 ;file descriptor (stdout) + mov eax,4 ;system call number (sys_write) + int 0x80 ;call kernel + + mov eax,1 ;system call number (sys_exit) + int 0x80 ;call kernel + +section .data + +msg db 'Hello, world!',0xa ;our dear string +len equ $ - msg ;length of our dear string