Mam problem z użyciem w ASM funkcji sncan ktora by wczytała od użytkownika 2 zmienne naraz. Uda się tylko do 1, a w drugiej się pojawiają jakieś śmieci. Może ktoś mógłby pomóc :) :
segment .data
wypisz_znak db "%c", 0x0
wypisz_liczby db "Podales(x,y): (%d , %d)", 0x0
wiad1 db "Podaj (x, y) pierwszego punktu: ", 0Ah,0Dh, 0x0
x_p2 dw 0
y_p2 dw 0
x_p3 db "%2d , %2d", 0
section .text
extern printf
extern scanf
global main
main:
push ebp
mov ebp,esp
sub esp, 40
and esp, ~0x0f
push wiad1 ; Prosba o podanie x, y
call printf ;
pop eax ;
lea eax,[y_p2] ; Wpisanie do y_p2 liczby
push eax ;
lea eax,[x_p2]
push eax
push x_p3 ;
call scanf ;
add esp,24 ;
mov eax, [y_p2] ; Wypisanie podanej liczby
push eax ;
mov eax, [x_p2] ;
push eax ;
push wypisz_liczby ;
call printf ;
add esp,24 ;
mov esp, ebp
pop ebp
mov eax, 0
ret