40 lines
638 B
Text
40 lines
638 B
Text
# by Michael Zhang <zhan4854@umn.edu>
|
|
|
|
# Execution begins at address 0
|
|
.pos 0
|
|
irmovq stack, %rsp
|
|
call main
|
|
halt
|
|
|
|
# Sample linked list
|
|
.align 8
|
|
ele1:
|
|
.quad 0xa00
|
|
.quad ele2
|
|
ele2:
|
|
.quad 0x0b0
|
|
.quad ele3
|
|
ele3:
|
|
.quad 0x00c
|
|
.quad 0
|
|
|
|
main:
|
|
irmovq ele1, %rdi # copy the first element
|
|
xorq %rax, %rax # set %rax to 0
|
|
call rsum_list # call rsum_list
|
|
ret
|
|
|
|
rsum_list:
|
|
mrmovq (%rdi), %r8
|
|
mrmovq 8(%rdi), %r9
|
|
addq %r8, %rax
|
|
xorq %rdi, %rdi
|
|
addq %r9, %rdi
|
|
jne recall
|
|
ret
|
|
recall:
|
|
call rsum_list
|
|
ret
|
|
|
|
.pos 0x200
|
|
stack:
|