Я застрял при написании своей программы Вот что я хотел, чтобы она сделала:
- отображение приветственного сообщения в консоли
- Подождите, пока пользователь введет число от 09]
- сравните это число с 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), оно показывает точное введенное мной значение. Так почему бы и нет?работает?
Заранее спасибо