diff options
Diffstat (limited to 'lib/std.kurt')
-rw-r--r-- | lib/std.kurt | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/std.kurt b/lib/std.kurt new file mode 100644 index 0000000..b247604 --- /dev/null +++ b/lib/std.kurt @@ -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 |