我正在尝试编写一个 x86-64 汇编程序,它是函数“int addarray(int n, int * array)”。第一个参数是数组的长度,第二个是指向数组的指针。它应该将数组的元素相加并返回。这是我到目前为止的代码,我不知道为什么它不起作用。
.text
.globl addarray
.type addarray, @function
addarray:
movq $0, %rdx
movq $0, %rax
while:
cmpq %rdx, %rdi
jle afterw
movq %rdx, %rcx
imulq $8, %rcx
addq %rsi, %rcx
addq %rcx, %rax
addq $1, %rdx
jmp while
afterw:
ret