projects
/
rrq
/
jonasforth.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
Implement Linux backend
[rrq/jonasforth.git]
/
os
/
linux.asm
1
format ELF64 executable
2
entry main
3
4
macro os_code_section {
5
segment readable executable
6
}
7
8
macro os_data_section {
9
segment readable writable
10
}
11
12
os_code_section
13
14
os_initialize:
15
ret
16
17
os_print_string:
18
push rsi
19
mov rax, 1
20
mov rdi, 1
21
mov rsi, rcx
22
syscall
23
pop rsi
24
ret
25
26
os_read_char:
27
push rsi
28
mov rax, 0
29
mov rdi, 0
30
mov rsi, .buffer
31
mov rdx, 1
32
syscall
33
pop rsi
34
movzx rax, byte [.buffer]
35
ret
36
37
os_terminate:
38
mov rdi, rax
39
mov rax, $3C
40
syscall
41
42
os_data_section
43
44
os_read_char.buffer db ?
45