Comment Utiliser Scanf Dans les MSNA?

Je ne peux pas comprendre cela. Je suis évidemment vraiment nouveau à l'Assemblée, et je suis à essayer de comprendre comment utiliser Scanf pour obtenir la saisie de l'utilisateur.

Je sais pour les utiliser Printf tout ce que j'ai à faire est d'appuyer sur les données que je veux écrire sur l'écran dans la pile comme ceci:

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

Mais je ne peux pas comprendre comment utiliser Scanf. Quelqu'un peut s'il vous plaît donnez-moi le plus simple possible code source, vous pouvez pour le Scanf? Vraiment, je veux juste mettre ce que l'utilisateur tape dans.

Je ne suis pas habitué à 32 bits de l'Assemblée. Je n'ai jamais utilisé 16bit, et je sais que dans 16bit (DOS), tu peux faire ça:

mov ah, 3fh
mov dx, input
int 21h

input rb 100d

Et tout ce que vous tapez dans la volonté de l'placés à l'adresse de "input".

S'il vous plaît garder avec moi. Je suis en train d'essayer de comprendre cela.

OriginalL'auteur user1432532 | 2012-06-11