diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-01-01 17:04:37 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-01-01 17:04:37 -0800 |
commit | 2a4088119cf41175457414dfa59bd4064b8f0562 (patch) | |
tree | 64fe184e399f9870ebd481a90eec34d51e5dff68 /archive/3.transect/ex4.k2 | |
parent | 23fd294d85959c6b476bcdc35ed6ad508cc99b8f (diff) | |
download | mu-2a4088119cf41175457414dfa59bd4064b8f0562.tar.gz |
5852
Diffstat (limited to 'archive/3.transect/ex4.k2')
-rw-r--r-- | archive/3.transect/ex4.k2 | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/archive/3.transect/ex4.k2 b/archive/3.transect/ex4.k2 deleted file mode 100644 index 9a7ddee7..00000000 --- a/archive/3.transect/ex4.k2 +++ /dev/null @@ -1,34 +0,0 @@ -## read a character from stdin, save it to a global, write it to stdout - -# variables are always references -# read their address with their names: x (can't write to their address) -# read/write their contents with a lookup: *x -var x : char - -fn main [ - call read 0/stdin, x, 1/size - result/EAX <- call write 1/stdout, x, 1/size - call exit, result/EAX -] - -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 -] - -fn exit x : int [ - code/EBX <- copy x - code/EAX <- copy 1/exit - syscall -] |