Hi! Basically I'm receiving user input, storing it in a buffer, and then (so far) testing the first of the three digit combination. However, when I CMP the first digit to the first number in the correct serial code it always tell me that I've entered the wrong serial code, even though printing that first digit yields '2'?
Here's the complete code:
org 100h
jmp _start
welcome_msg db "Please enter your serial code: ", "$"
fail_msg db "Wrong serial code!", "$"
success_msg db "Thank you for CRACKING this software!", "$"
serial db 0, 0, 0
fail:
mov ah, 09h
lea dx, [fail_msg]
int 21h
ret
_start:
mov ah, 09h
lea dx, [welcome_msg]
int 21h
lea bx, [serial]
get_user_input:
xor ax, ax
int 16h
mov ah, 02h
mov dl, al
int 21h
mov [bx], al
add bx, 1
cmp al, 13
jne get_user_input
confirm:
mov ah, 02h
mov dl, 0ah
int 21h
cmp byte [serial], 02h
jne fail
success:
mov ah, 09h
lea dx, [success_msg]
int 21h
ret
And by the way, before you accuse me of anything, check out this thread: http://www.daniweb.com/software-development/assembly/threads/377671
Also (not my number one priority right now) can anyone tell me why it is that when I enter a 3+ digit combination it crashes, and the 16-bit MS-DOS Subsystem informs me that the CPU has encountered an illegal instruction?