retroforth/vm/nga-c-no-libc/linux.s
crc ea8e12d32a finish reorg of main sources
FossilOrigin-Name: 6a7ee82ed6b024ee1d8f7a51a9b91a66a8041cde06b53cce649d6bd383ae9677
2019-11-22 18:30:02 +00:00

51 lines
976 B
ArmAsm

; ___ ___ _____ ___ ___ __ _ _
; | _ \ __|_ _| _ \/ _ \ / / | | (_)_ _ _ ___ __
; | / _| | | | / (_) | / / | |__| | ' \ || \ \ /
; |_|_\___| |_| |_|_\\___/ /_/ |____|_|_||_\_,_/_\_\
;
; This is the minimal startup + I/O functionality needed to run
; RETRO on a Linux x86 system.
; =============================================================
bits 32
section .text
global putchar
global getchar
global _start
extern main
align 4
_start:
call main
jmp $
align 4
putchar:
mov eax, [esp+4]
mov [buf], eax
mov edx, 1
mov ecx, buf
mov ebx, 1
mov eax, 4
int 0x80
ret
align 4
getchar:
mov edx, 1
mov ecx, buf
mov ebx, 0
mov eax, 3
int 0x80
mov eax, 0
mov eax, [buf]
ret
section .data
buf:
dd 0
dd 0
dd 0
dd 0