Я застрял писать свою программу Вот что я хотел, чтобы это сделать:MASM сравнить неинициализированные буфера
- дисплея приветственного сообщением в консоли
- Дождитесь пользователем Imput числа от 0 до 9]
- сравнить это число до 0
- отображать сообщение, если оно, еще выход
Вот что я в настоящее время есть:
.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
Программа собирает & ссылки совершенно без каких-либо предупреждений или ошибок Но CMP всегда возвращает 1, если напечатать значение в данных (с STDOUT) он показывает мне точное значение я положил в. Так почему же он не работает?
Заранее спасибо
Что такое StdIn и StdOut? Являются ли они макросами или функциями из дистрибутива MASM? У меня нет никакого современного дистрибутива MASM, который можно проверить. – atzz
Я бы предложил использовать NASM, у него гораздо более четкий синтакс. – ruslik