summaryrefslogtreecommitdiffhomepage
path: root/example/example_03_masm_sysv_osx/example.asm
blob: 311536d7c8838b6c5c0d2dfa5fb6308f6510aa4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
%bits 64
public_segment .code64 main

; This example shows how to write "Hello World" to stdout using
; OS X syscall interface in x86-64 assembly (NeKernel syntax).

mov [rsp+0],  0x48
mov [rsp+1],  0x65
mov [rsp+2],  0x6C
mov [rsp+3],  0x6C
mov [rsp+4],  0x6F
mov [rsp+5],  0x20
mov [rsp+6],  0x57
mov [rsp+7],  0x6F
mov [rsp+8],  0x72
mov [rsp+9],  0x6C
mov [rsp+10], 0x64
mov [rsp+11], 0x0A

mov rax, 0x2000004
mov rdi, 0x01
lea rsi, [rsp]
mov rdx, 0x0C
syscall

mov rax, 0x2000001
xor rdi, rdi
syscall

ret