Je suis coincé écrire mon programme Voici ce que je voulais faire:MASM comparer les tampons non initialisées
-
affichage
- un message de bienvenue dans une console
- Attendez que l'utilisateur imput un nombre de 0 à 9]
- comparer ce nombre à 0
- affichage d'un message si elle est, sortie autre
Voici ce que je actuellement ont:
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
include \masm32\include\masm32.inc
includelib \masm32\lib\masm32.lib
.data
capt db "SCHiM says: ",0
txt db "Enter a number 0-9:",0
.data?
data db ?
.code
start:
call AllocConsole
push offset txt
call StdOut
push 1
push offset data
call StdIn
mov al, data
cmp al, 0h
jz eqzero
invoke ExitProcess, NULL
eqzero:
push offset capt
call StdOut
push offset data
call StdOut
endloop:
jmp endloop
invoke ExitProcess, NULL
end start
Le programme rassemble & liens parfaitement sans avertissements ou des erreurs Mais cmp renvoie toujours 1, si j'imprime la valeur des données (avec StdOut), il me montre la valeur exacte que j'ai mis. Alors pourquoi ça ne marche pas?
Merci à l'avance
Qu'est-ce que StdIn et StdOut? Sont-ils des macros ou des fonctions de la distribution MASM? Je n'ai pas de distribution MASM moderne à portée de main. – atzz
Je suggère d'utiliser NASM, il a une sintax plus claire. – ruslik