Я не могу понять это. Я, очевидно, очень новичок в Assembly, и я пытаюсь выяснить, как использовать 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. Может кто-нибудь, пожалуйста, просто дайте мне самый простой возможный исходный код для Scanf? Я просто хочу указать, что пользователь вводит.
Я не привык к 32-битной сборке. Я только когда-либо использовал 16 бит, и я знаю, что в 16 бит (DOS) вы можете просто сделать это:
mov ah, 3fh
mov dx, input
int 21h
input rb 100d
И все, что вы введете, будет помещено по адресу "input".
Пожалуйста, несите меня. Я пытаюсь понять это.