Я изучаю ассемблер, и я довольно новичок в этом.Я делаю программу базовых сумм, и когда она будет завершена, у меня будет приглашение спросить, хочу ли я «продолжить: да / нет».Когда я вызываю readChar (хранит в регистре AL) и вызываю команду JE (jump equal), ничего не происходит.Не похоже, что он записывает ввод символов в регистр.Он не прыгает на мою метку "L2" и продолжается построчно.Есть идеи почему?
INCLUDE Irvine32.inc
.data
firstPrompt BYTE "Enter first 16 bit unsigned integer: ", 0
secondPrompt BYTE "Enter second 16 bit unsigned integer: ", 0
reenterPrompt BYTE "The number must be between 0 and 65,535 ", 0
continuePrompt BYTE "Continue: y/n:", 0
sumPrompt BYTE "Sum = ", 0
arr BYTE 5 DUP (?), 0
.code
main PROC
L1:
mov edx, OFFSET firstPrompt
call writeString
call readInt
cmp eax, 0
jl falseCase
cmp eax, 65535
ja falseCase
mov bx, ax ;bx = first int
L2:
mov edx, OFFSET secondPrompt
call writeString
call readDec ;ax = second int
cmp ebx, 65535
jl falseCase
cmp bx, 0
jae trueCase
trueCase: ;if true, sum both intergers, print the sum and prompt to continue
add ax, bx
mov edx, OFFSET sumPrompt
call writeString
call writeDec
call crlf
mov edx, OFFSET continuePrompt
call writeString
call readChar
cmp al, 'y'
or al, 'Y'
call crlf
je L2
falseCase:
mov edx, OFFSET reenterPrompt
call writeString
call crlf
jmp L1