-1
"int addarray (int n, int * array)"함수 인 x86-64 어셈블리 프로그램을 작성하려고합니다. 첫 번째 arg는 배열의 길이이고, 두 번째는 배열에 대한 포인터입니다. 배열의 요소를 더하고 반환해야합니다. 지금까지 제가 가지고있는 코드는 다음과 같습니다. 왜 작동하지 않는지 모르겠습니다.x86-64 어셈블리의 배열 요소 추가
.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
"작동하지 않음"을 정의하십시오. – Michael
어떤 전화 협약을 사용합니까? 나는. 어떤 레지스터에 인수가 들어 있습니까? 내 어셈블러는 약간 녹슬었지만'$ rdx'가 0으로 설정되어 있기 때문에'cpmq % rdx, % rdi jle afterw'가 즉시 afterw로 이동하지 않습니까? – dtech