我正在对数组进行硬编码,并尝试打印出其内容。我是组装的初学者,我迷路了。运行代码时,输出为1和6295604。如果有人可以帮助我修复我的错误并打印出真棒的错误。
.data
arr: .quad 1, 2, 3, 4, 5
output: .string "%d \n"
.text
.global main
sumarr:
xor %rax, %rax
xor %rcx, %rcx
printarr:
xor %rax, %rax
decq %rsi
movq (%rdi, %rsi, 8), %rcx
movq %rcx, %rax
cmpq $0, %rsi
jne printarr
call fake
ret
main:
mov $arr, %rdi
mov $5, %rsi
call sumarr
fake:
push %rax
push %rcx
push %rdi
mov $output, %rdi
mov %rax, %rsi
xor %rax, %rax
call printf
pop %rax
pop %rcx
pop %rdi
ret