projects
/
rrq
/
jonasforth.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8d5c5f5
)
Implement TYPE
author
Jonas Hvid
<mail@johv.dk>
Thu, 21 Nov 2019 17:32:27 +0000
(18:32 +0100)
committer
Jonas Hvid
<mail@johv.dk>
Thu, 21 Nov 2019 17:32:27 +0000
(18:32 +0100)
main.asm
patch
|
blob
|
history
diff --git
a/main.asm
b/main.asm
index 0a8ff4cf256dcd602e3c8c59b3bde3418422343b..1fda85d7056575d2582496ef4bbf45a189178287 100644
(file)
--- a/
main.asm
+++ b/
main.asm
@@
-65,9
+65,25
@@
EMIT:
popr rsi
next
popr rsi
next
+TYPE:
+ dq .start
+.start:
+ mov rbx, rsi
+ mov rcx, rax
+
+ mov rax, 1
+ mov rdi, 1
+ pop rdx ; Length
+ pop rsi ; Buffer
+ syscall
+
+ mov rax, rcx
+ mov rsi, rbx
+ next
+
PUSH_HELLO_CHARS:
dq .start
PUSH_HELLO_CHARS:
dq .start
-
.start:
+.start:
push $A
push 'o'
push 'l'
push $A
push 'o'
push 'l'
@@
-76,6
+92,13
@@
PUSH_HELLO_CHARS:
push 'H'
next
push 'H'
next
+PUSH_TEST_STRING:
+ dq .start
+.start:
+ push test_string
+ push test_string.length
+ next
+
HELLO:
dq docol
dq PUSH_HELLO_CHARS
HELLO:
dq docol
dq PUSH_HELLO_CHARS
@@
-97,12
+120,19
@@
TERMINATE:
MAIN:
dq docol
dq HELLO
MAIN:
dq docol
dq HELLO
+ dq PUSH_TEST_STRING
+ dq PUSH_TEST_STRING
+ dq TYPE
+ dq TYPE
dq HELLO
dq HELLO
dq TERMINATE
segment readable writable
dq HELLO
dq HELLO
dq TERMINATE
segment readable writable
+test_string db 'Hi, this is a test.',$A
+.length = $ - test_string
+
;; Return stack
rq $2000
return_stack_top:
;; Return stack
rq $2000
return_stack_top: