blob: 0d7148fe22729297a412721ab85416d1bdfc7bf9 (
plain) (
tree)
|
|
# read a character from stdin, save it to a local on the stack, write it to stdout
fn main [
var x : char
call read 0/stdin, x, 1/size
result/EBX <- call write 1/stdout, x, 1/size
call exit-EBX
]
fn read fd : int, x : (address array byte), size : int [
EBX <- copy fd
ECX <- copy x
EDX <- copy size
EAX <- copy 3/read
syscall
]
fn write fd : int, x : (address array byte), size : int [
EBX <- copy fd
ECX <- copy x
EDX <- copy size
EAX <- copy 4/write
syscall
]
# like exit, but assumes the code is already in EBX
fn exit-EBX [
code/EAX <- copy 1/exit
syscall
]
|