問題は、ユーザーに任意の数字を入力するように依頼することです。入力した数値を事前定義された定数と比較します。次に、入力された数値が定義された数値以上であるというメッセージを出力します。この例では、事前定義された番号は27です。
私のコードは次のとおりです。
.MODEL small
.STACK 100h
.DATA
promptmsg DB 'Please enter a number [1..100]',13,10,'$'
greatermsg db 'You have entered a greater number', 13, 10, '$'
lessmsg db 'You have entered a lesser number', 13 , 10, '$'
correctmsg db 'You have hit the right number', 13, 10, '$'
numbr dw 27
.CODE
.startup
mov ax,@data
mov ds,ax
lea dx, promptmsg
mov ah,9
int 21h
mov ah, 0ah
int 21h
mov ah, 9
int 21h
mov bx, numbr
cmp ax, bx
jb lesser
ja greater
correct:
mov dx, offset correctmsg
mov ah, 09h
int 21h
jmp endexe
greater:
mov dx, offset greatermsg
mov ah, 09h
int 21h
jmp endexe
lesser:
mov dx, offset lessmsg
mov ah, 09h
int 21h
endexe:
mov ah,4ch ;DOS terminate program function
int 21h ;terminate the program
END
事前定義された数値以下であるかどうかに関係なく、任意の数値を入力すると、常により大きい数値にジャンプします。入力番号を認識できなかったコードに問題はありますか?