MASM32 поставляется с файлом справки: \masm32\help\masmlib.chm
.Он говорит:
StdIn получает текст входные данные с консоли и помещает их в буфер, требуемый в качестве параметра.Функция завершается при нажатии Enter.
Я пометил соответствующее слово «текст».Таким образом, вы получите строку ASCII, а не число, подходящее для AX
.Сначала вы должны преобразовать его в «целое число», прежде чем сможете сравнить его с cmp
.Вы можете использовать функцию MASM32 atol
:
.386
.model flat,stdcall
option casemap:none
include c:\masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\masm32.inc
includelib \masm32\lib\masm32.lib
.data
msg db "Enter Number", 0
msg1 db "The value is too large", 0
.data?
input db 150 dup(?)
output db 150 dup(?)
.code
start:
push offset msg
call StdOut
push 100
push offset input
call StdIn
push offset input
call atol
cmp eax, 5
jg Toolarge
exit:
push 0
call ExitProcess
Toolarge:
push offset msg1
call StdOut
jmp start
end start