46 lines
1.3 KiB
Plaintext
46 lines
1.3 KiB
Plaintext
;; Currently makro stack notation is ignored by the compiler.
|
||
makro stdout 1 son
|
||
makro sys-write 1 son
|
||
makro write (fd string -- )
|
||
değiş sys-write syscall-3
|
||
son
|
||
|
||
makro sys-exit 60 son
|
||
makro çık (çıkış-kodu -- )
|
||
sys-exit syscall-1
|
||
son
|
||
|
||
makro / (a b -- (a / b)) divmod düş son
|
||
makro % (a b -- (a % b)) divmod değiş düş son
|
||
makro 2eş (a b -- a b a b) üst üst son
|
||
|
||
makro load64 (bel -- a)
|
||
7 + 0
|
||
8 << üst oku + değiş 1 - değiş
|
||
8 << üst oku + değiş 1 - değiş
|
||
8 << üst oku + değiş 1 - değiş
|
||
8 << üst oku + değiş 1 - değiş
|
||
8 << üst oku + değiş 1 - değiş
|
||
8 << üst oku + değiş 1 - değiş
|
||
8 << üst oku + değiş 1 - değiş
|
||
8 << üst oku + değiş düş
|
||
son
|
||
|
||
makro byte-max 255 son ;; 2^8 - 1 = 255
|
||
makro store64 (bel a -- )
|
||
2eş byte-max & yaz 8 >> değiş 1 + değiş
|
||
2eş byte-max & yaz 8 >> değiş 1 + değiş
|
||
2eş byte-max & yaz 8 >> değiş 1 + değiş
|
||
2eş byte-max & yaz 8 >> değiş 1 + değiş
|
||
2eş byte-max & yaz 8 >> değiş 1 + değiş
|
||
2eş byte-max & yaz 8 >> değiş 1 + değiş
|
||
2eş byte-max & yaz 8 >> değiş 1 + değiş
|
||
2eş byte-max & yaz 8 >> düş düş
|
||
son
|
||
|
||
makro strlen (ptr -- len)
|
||
0 değiş döngü eş oku iken
|
||
1 + değiş 1 + değiş
|
||
yap düş
|
||
son
|