我正在嘗試在x86彙編中編寫一個簡單的sum
函數 - 我將這個函數作爲參數傳遞給3
和8
。但是,代碼不打印總和。感謝任何幫助發現錯誤。我正在使用NASMx86彙編中的sum函數 - 無輸出
section .text
global _start
_sum:
push ebp
mov ebp, esp
push edi
push esi ;prologue ends
mov eax, [ebp+8]
add eax, [ebp+12]
pop esi ;epilogue begins
pop edi
mov esp, ebp
pop ebp
ret 8
_start:
push 8
push 3
call _sum
mov edx, 1
mov ecx, eax
mov ebx, 1 ;stdout
mov eax, 4 ;write
int 0x80
mov ebx, 0
mov eax, 1 ;exit
int 0x80
你會期待什麼? stdout上的字符串「11」?自從我用匯編寫入任何東西已經很長時間了,但是對於我想要寫入stdout的內容,可以是ASCII字符11(不是字符串「11」),也可以是位於內存偏移量11(0xb)中的字符串。也許我錯了,但這是我的猜測。 –
順便說一句,它是Windows還是Linux? –
@XavierRubioJansana Linux。我試過'添加eax,'0''以防ascii 11,但是沒用。 –