微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

大会比较数字

如何解决大会比较数字

我正在使用 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 举报,一经查实,本站将立刻删除。