Вот мой код
segment .data
; initialized data is put in the data segment here
;
segment .text
global main
main:
enter 0,0 ; setup stack frame
pusha
call func
;
;
;
;
popa
mov eax, 0 ;
leave ;
ret
func:
push ebp
mov ebp,esp
sub esp,4 ;this is for local variable
mov eax,dword [ebp+12]
call print_int
call print_nl
mov eax,dword [ebp+8]
call print_int
call print_nl
mov esp,ebp
pop ebp
ret
Если я наберу команду $./test 1 2 3
, то в стеке
---------------
pointer to argv-------->ebp+12
---------------
argc -------->ebp+8
---------------
return address -------->ebp+4
---------------
saved ebp -------->ebp
---------------
она должна вывести 3 (количество аргументов), но есть только0 в консоли.
что не так?