问题描述
我无法打印出数组值。
程序在到达“ printloop:”标签之前不会显示任何错误。有一些错误使得无法打印这些值,但我找不到它。
希望你可以。
; compile: nasm -felf64 array.asm
; linked in Ubuntu/Linux Mint: gcc -no-pie array.o -o array
; run: ./array
segment .data
lst: dq 101,102,103,104,105
len: equ (($ - lst) / 8)
fmt: dq "%lld ",10,0
segment .text
global main
extern printf
main:
mov ecx,len
lea rbx,[lst]
mov rdx,rbx ; We'll use RDX below.
xor edi,edi
xor eax,eax
pushloop:
push qword [rbx+rdi*8]
add rdi,1
dec ecx
jnz pushloop
mov ecx,len
xor edi,edi
poploop:
pop rax
mov [rdx+rdi*8],rax
add rdi,1
dec ecx
jnz poploop
mov ecx,len
xor edi,edi
printloop:
mov rax,[rdx+rdi*8]
add rdi,1
mov rcx,fmt
mov rsi,rax
call printf wrt ..plt
dec ecx
jnz printloop
end:
mov eax,60
xor edi,edi
syscall
预先感谢您。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)