I'm learning assembly and I'm fairly new to it. I'm doing a basic sum program and when it's done, I have a prompt to ask if I would like to "continue: y/n". When I call readChar(stores in AL register), and call a JE(jump equal) command, nothing happens. It doesn't seem like it's recording the character input into the register. It doesn't jump to my "L2" label and continues on line by line. Any idea why?
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