diff --git a/a/assembler_nasm_linux64.asm b/a/assembler_nasm_linux64.asm new file mode 100644 index 00000000..94470ce8 --- /dev/null +++ b/a/assembler_nasm_linux64.asm @@ -0,0 +1,20 @@ +section .text + global _start ;must be declared for linker (ld) + +_start: ;tell linker entry point + + xor eax,eax ; eax:=0 + lea edx,[rax+len] ;message length + mov esi,msg ;message to write + lea edi,[rax+1];file descriptor (stdout) + mov al,1 ;system call number (sys_write) + syscall ;call kernel + +; xor eax, eax + mov al,60 ;system call number (sys_exit) + syscall ;call kernel + +section .data + +msg db 'Hello, world!',0xa ;our string +len equ $ - msg ;length of our string