Я жестко кодирую массив и пытаюсь распечатать его содержимое. Я новичок в сборке, и я заблудился на том, что идти отсюда. Когда я запускаю код, выводится 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