diff --git a/a/assembler_nasm_linux.asm b/a/assembler_nasm_linux.asm index 213bb983..c038b4f9 100644 --- a/a/assembler_nasm_linux.asm +++ b/a/assembler_nasm_linux.asm @@ -3,16 +3,18 @@ section .text _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 + xor ebx,ebx ;ebx=0 + mov ecx,msg ;address of message to write + lea edx,[ebx+len] ;message length + lea eax,[ebx+4] ;system call number (sys_write) + inc ebx ;file descriptor (stdout) + int 0x80 ;call kernel - mov eax,1 ;system call number (sys_exit) - int 0x80 ;call kernel + xor eax, eax ;set eax=0 + inc eax ;system call number (sys_exit) + int 0x80 ;call kernel -section .data +section .rodata msg db 'Hello, world!',0xa ;our string len equ $ - msg ;length of our string