Я пытаюсь понять, как использовать scanf
для получения пользовательского ввода. Я знаю, как использовать printf
: все, что мне нужно сделать, это поместить данные, которые я хочу вывести на экран, в стек следующим образом:
global _main
extern _printf
extern _scanf
section .data
msg db "Hi", 0
section .text
_main:
push ebp
mov ebp, esp
push msg
call _printf
mov esp, ebp
pop ebp
ret
Но я не могу понять, как использовать сканф
. Может кто-нибудь, пожалуйста, дайте мне самый простой исходный код для scanf
? Я просто хочу вставить то, что вводит пользователь.
Я не привык к 32-битному ассемблеру. Я когда-либо использовал только 16-битную версию, и я знаю, что в 16-битной (DOS) вы можете просто сделать это:
mov ah, 3fh
mov dx, input
int 21h
input rb 100d
И все, что вы наберете, будет размещено по адресу «input».