From: Dylan Lloyd Date: Sun, 14 Oct 2012 18:14:05 +0000 (-0400) Subject: init X-Git-Url: https://disinclined.org/git/?a=commitdiff_plain;h=9a74d202d3b0ffe860b9e765548aea9643aeb84b;p=nasm.git init --- 9a74d202d3b0ffe860b9e765548aea9643aeb84b diff --git a/hello.asm b/hello.asm new file mode 100644 index 0000000..7e5d8c1 --- /dev/null +++ b/hello.asm @@ -0,0 +1,27 @@ +section .data + hello: db 'Hello, world.',10 ; declare initialized string with linefeed char + helloLen: equ $-hello ; declare and init. constant + done: db 0 + +section .text + global _start + +_start: + movzx eax, byte [done] ; Pad value of done to one byte and put in eax + cmp eax,1 ; Compare eax with 1 + jg myFirstASMLabel ; Jump if greater than to myFirstASMLabel + + mov byte [done], 1 + + mov eax,4 ; Put magic # for system call sys_write into eax + mov ebx,1 ; Prepare arg 1 of sys_write, 1 - file descriptor of stdo + mov ecx,hello ; Prepare arg 2, reference to string hello + mov edx,helloLen ; Prepare arg 3, string length, no deref. b/c constant + int 80h ; Call the kernel +; + +myFirstASMLabel: + mov eax,1 ; The system call for exit (sys_exit) + mov ebx,0 ; Exit with return code of 0 (no error) + int 80h +