added new examples
This commit is contained in:
45
lib/std.kurt
Normal file
45
lib/std.kurt
Normal file
@@ -0,0 +1,45 @@
|
||||
;; 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
|
||||
Reference in New Issue
Block a user