aboutsummaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
Diffstat (limited to 'main.asm')
-rw-r--r--main.asm43
1 files changed, 43 insertions, 0 deletions
diff --git a/main.asm b/main.asm
index 66f73f6..77d214b 100644
--- a/main.asm
+++ b/main.asm
@@ -110,6 +110,49 @@ _main:
pop rax
lln_free
+ dll_alloc
+ push rax
+ mov rbx, rax
+ mov r12, 0xDEADBEEF
+ dll_push rbx, r12
+ push rax
+ mov rbx, [rsp+8]
+ mov r12, 0xCAFEBABE
+ dll_push rbx, r12
+ push rax
+
+ mov rbx, [rsp+16]
+
+ mov rax, rbx
+ mov rax, [rax + dll_value]
+ REGD rax
+
+ mov rax, rbx
+ dll_seek
+ mov rax, [rax + dll_value]
+ REGD rax
+
+ mov rax, rbx
+ dll_seek
+ dll_seek
+ mov rax, [rax + dll_value]
+ REGD rax
+
+ mov rax, rbx
+ dll_end
+ mov rax, [rax + dll_value]
+ REGD rax
+
+ pop rax
+ pop rax
+ pop rax
+ dll_end
+.free_loop:
+ mov rbx, [rax + dll_prev]
+ dll_free
+ mov rax, rbx
+ cmp rbx, 0
+ jne .free_loop
exit_prog