1
我想更好地理解nasm中的堆棧,所以我讓這個程序嘗試將「參數」傳遞給nasm中的「函數」。我對這個大會很新。Nasm程序段錯誤
section .data
v0s0msg0: db 'Enter something',10
v1t0msg0L: equ $-v0s0msg0
section .bss
v2i0inp0 resb 256
v3v0temp0 resb 256
section .text
global _start
_start:
;This is a nasm program to help me understand the stack better
mov eax,4
mov ebx,1
mov ecx,v0s0msg0
mov edx,v1t0msg0L
int 80h
mov eax,3
mov ebx,0
mov ecx,v2i0inp0
mov edx,256
int 80h
push dword v2i0inp0
call f0m0test0
mov eax,1
mov ebx,0
int 80h
f0m0test0:
pop dword[v3v0temp0]
mov eax,4
mov ebx,1
mov ecx,v3v0temp0
mov edx,256
int 80h
ret 4
我可以組裝它,鏈接它,並運行得很好,但在運行它時,以後我進入輸入法,它只是說,下面的兩個分段錯誤「?」看人物。
我試圖改變
pop dword[v3v0temp0]
喜歡的東西:
pop v3v0temp0
甚至:
mov v3v0temp0,dword[ebp]
,很多這樣的事情,但他們都最終成爲無論是分段錯誤或彙編器錯誤說: 操作碼和o的無效組合perands 我真的很感謝幫助,使這個程序的工作,也請解釋一點關於堆棧,使用前綴'dword',''''字符是什麼。我只想解釋如何使用堆棧來「參數」。 我在Linux操作系統上運行此,Ubuntu的 預先感謝您