From 5b0f04f0c5d406def1acbcdbcc114e9b4bf5c7da Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Sun, 14 Jul 2024 10:52:51 -0700 Subject: Double Linked List --- main.asm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'main.asm') 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 -- cgit v1.2.1