Как использовать scanf в NASM?

Я пытаюсь понять, как использовать 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».

14
задан Gaurang Tandon 26 February 2019 в 03:31
поделиться