Я хочу сделать программу, которая просит пользователя ввести пароль и запросить подтверждение. Затем он сохраняет введенное значение в регистре bx и помещает 3 в цикл cx for.
Затем программа снова запросит у пользователя только что созданный пароль. Если пользователь вводит правильный пароль, программа должна напечатать пароль.
Однако в настоящее время программа завершает работу после проверки пароля и не печатает его. Что я делаю не так?
Это мой код:
.model small
.stack 100h
.data
msg db 10,13, 'please insert a new password$'
msg1 db 10,13, 'confirm the password$'
msg2 db 10,13,'password is not the same whith first one ,re enter it!$'
msg3 db 10,13,'password is verfied$'
p1 dw ?
p2 dw ?
a db 10
b db 100
m1 db 10,13,'this program is created by firoo , for use of password verfication:$'
m2 db 10,13,'please input the correct password to proced:$'
m3 db 10,13,'invalid password$'
m4 db 10,13,'the password is correct congra!$'
p dw ?
count dw 3
.code
main proc
mov ax,@data
mov ds,ax
mov dx,offset msg
mov ah,09h
int 21h
mov ah,01h
int 21h
sub ax,30h
mul b
mov p1,ax
mov ah,01h
int 21h
sub ax,30h
mul a
add p1,ax
mov ah,01h
int 21h
sub ax,30h
add p1,ax
mov bx,p1
add bx ,30h
mov p,bx
l1:mov dx,offset msg1
mov ah,09h
int 21h
mov ah,01h
int 21h
sub ax,30h
mul b
mov p2,ax
mov ah,01h
int 21h
sub ax,30h
mul a
add p2,ax
mov ah,01h
int 21h
sub ax,30h
add p2,ax
mov bx,p2
add bx,30h
cmp bx,p
jne notv
mov dx,offset msg3
mov ah,09h
int 21h
jmp l2
notv:
mov dx,offset msg2
mov ah,09h
int 21h
jmp over
l2:mov cx,count
mov bx,[p]
mov dx,offset m1
mov ah,09h
int 21h
mov dx,offset m2
mov ah,09h
int 21h
again: mov ah,08
int 21h
cmp al,[bx]
jne error
inc bx
loop again
mov dx,offset m4
mov ah,09h
int 21h
jmp over
error:mov dx,offset m3
mov ah,09h
int 21h
over:mov ah,4ch
int 21h
main endp
end main