如何解决大会比较数字
我正在使用 TASM MS-DOS 创建一个用户必须解决数学问题的游戏。我设法创建了一个程序,可以在屏幕上打印练习并让用户输入答案。但是,当我尝试比较用户的答案和正确答案时,它总是说用户错了。这是我的代码:
proc getInput
READ:
MOV AH,1
INT 21H
CMP AL,13
JE ENDOFNUMBER
MOV VALUE,AL
SUB VALUE,48
MOV AL,[userAnswer]
MOV BL,10
MUL BL
ADD AL,VALUE
MOV [userAnswer],AL
JMP READ
ENDOFNUMBER:
ret
endp getInput
proc Addition
addition:
call AddBreakLines
call Addspaces
call generateBasicRandomNumber
mov dl,[randomNumber]
mov [basicRandomNumber1],dl
add dl,'0'
mov ah,2h
int 21h
mov dx,offset plusSign
call printStr
push 1
call sleep
call generateBasicRandomNumber
mov dl,[randomNumber]
mov [basicRandomNumber2],dl
add dl,2h
int 21h
push 1
call sleep
;
mov dl,[space]
mov ah,2h
int 21h
push 1
call sleep
mov dl,[equalSign]
mov ah,2h
int 21h
;
call getInput
mov al,[basicRandomNumber1]
add al,[basicRandomNumber2]
mov [result],al
call CompareResultWithUserAnswer
;call CompareResultWithUserAnswer
call printNewLine
call printNewLine
call printNewLine
cmp [isCorrect],0
je INCORRECT_ADDITION
CORRECT_ADDITION:
mov dx,offset correctMsg
mov ah,09h
int 21h
jmp END_ADDITION_FUNCTION
INCORRECT_ADDITION:
mov dx,offset incorrectMsg
mov ah,09h
int 21h
END_ADDITION_FUNCTION:
jmp END_ADDITION
ret
endp Addition
proc CompareResultWithUserAnswer
mov al,[userAnswer]
cmp al,[result]
jne NOT_CORRECT
mov [isCorrect],1
jmp END_COMPARE
NOT_CORRECT:
mov [isCorrect],0
END_COMPARE:
ret
endp CompareResultWithUserAnswer
proc generateBasicRandomNumber
mov ax,40h
mov es,ax
mov ax,[es:6Ch]
and al,00000111b
mov [randomNumber],al
ret
endp generateBasicRandomNumber
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。