summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSuleyman Farajli <suleyman@farajli.net>2025-01-01 13:04:21 +0400
committerSuleyman Farajli <suleyman@farajli.net>2025-01-01 13:04:21 +0400
commit11a18a9d570f9bcfd8d543d0ad8e507bd3257db8 (patch)
tree04fae3d223ef73937f6d7152158178913a7f4270 /src
parentaf61c71518baa787bec26d2c7d0afaeb7f640ca8 (diff)
strings updated
Diffstat (limited to 'src')
-rw-r--r--src/main.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/main.go b/src/main.go
index 636b90f..19332c9 100644
--- a/src/main.go
+++ b/src/main.go
@@ -218,7 +218,7 @@ func X86_64map(op Operation) string{
case "done":
return fmt.Sprintf("\tjmp %s\n%s:\n", op.crosslabel, op.label)
case "string":
- /*TODO: add string*/
+ return fmt.Sprintf("\tpush %d\n\tpush %s\n", op.intData, op.label)
case "number":
return fmt.Sprintf("\tpush %d\n", op.intData)
case "syscall":
@@ -236,6 +236,10 @@ func compileX86_64(ops[] Operation) {
for i := 0; i < len(ops); i++ {
fmt.Printf("\t;; %s\n", ops[i].name)
fmt.Printf(X86_64map(ops[i]))
+ if (ops[i].name == "string") {
+ strings = append(strings, [2]string{ops[i].strData, ops[i].label})
+ }
+
}
print(" ;; EXIT")