csci2021/ArchLab/archlab-handout/zhan4854-rsum.ys
Michael Zhang 1fa36db752
f
2018-01-29 17:45:27 -06:00

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: