added 64bit equivalent
authorDylan Lloyd <dylan@dylansserver.com>
Sun, 14 Oct 2012 20:36:02 +0000 (16:36 -0400)
committerDylan Lloyd <dylan@dylansserver.com>
Sun, 14 Oct 2012 20:36:02 +0000 (16:36 -0400)
hello.asm [deleted file]
hello32.asm [new file with mode: 0644]
hello64.asm [new file with mode: 0644]

diff --git a/hello.asm b/hello.asm
deleted file mode 100644 (file)
index 7e5d8c1..0000000
--- a/hello.asm
+++ /dev/null
@@ -1,27 +0,0 @@
-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
-
diff --git a/hello32.asm b/hello32.asm
new file mode 100644 (file)
index 0000000..b6178a0
--- /dev/null
@@ -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
+
diff --git a/hello64.asm b/hello64.asm
new file mode 100644 (file)
index 0000000..32296f5
--- /dev/null
@@ -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 rax, byte [done]      ; Pad value of done to one byte and put in rax
+    cmp rax,1                   ; Compare rax with 1
+    jg myFirstASMLabel          ; Jump if greater than to myFirstASMLabel
+
+    mov byte [done], 1
+
+    mov rax,1            ; Put magic # for system call sys_write into rax
+    mov rdi,1            ; Prepare arg 1 of sys_write, 1 - file descriptor of stdo
+    mov rsi,hello        ; Prepare arg 2, reference to string hello
+    mov rdx,helloLen     ; Prepare arg 3, string length, no deref. b/c constant 
+    syscall              ; Call the kernel
+;
+
+myFirstASMLabel:
+    mov rax,60            ; The system call for exit (sys_exit)
+    mov rdi,0             ; Exit with return code of 0 (no error)
+    syscall
+