這是我的x86彙編代碼:打印時爲什麼會出現分段錯誤?
section .data
output db '%d',10,0
section .text
global main
extern printf
main :
xor ecx,ecx
xor eax,eax
mov eax,1
mov ecx,5
lable1:
push ecx
push eax
cmp eax,0
jg print
pop eax
pop ecx
inc eax
loop lable1
ret
print:
push eax
push output
call printf
add esp,8
ret
這個程序應在1間打印所有號碼5 爲什麼我打印「1」後得到一個分段錯誤?
查看[x86標記wiki](http://stackoverflow.com/tags/x86/info)中的調用約定/ ABI鏈接。您可以將您的計數器保存在通話保存的寄存器中,而不是試圖在printf中推送/彈出它們。 –