Ciao a tutti , preannuncio che sono un pivello alle prime armi , ho appena iniziato lo studio di assembler 8086, uso il programma emu8086, e sto trovando un po' di difficolta nella risoluzione di alcuni esercizi. So che voi siete i migliori.
L'esercizio dice:
- programma che consente di inserire una password di 8 caratteri
e di confrontarla con una password memorizzata nel segmento dati
- il programma non deve visualizzare la password mentre viene inserita
- ogni carattere deve essere sostituito a video con un '*'
- se la password e' corretta il programma deve stampare un messaggio di benvenuto, altrimenti un messaggio di errore
Questo è il codice che ho scritto:
Che ne pensate? Dove sbaglio?
Grazie in anticipo.
L'esercizio dice:
- programma che consente di inserire una password di 8 caratteri
e di confrontarla con una password memorizzata nel segmento dati
- il programma non deve visualizzare la password mentre viene inserita
- ogni carattere deve essere sostituito a video con un '*'
- se la password e' corretta il programma deve stampare un messaggio di benvenuto, altrimenti un messaggio di errore
Questo è il codice che ho scritto:
Codice:
; programma che consente di inserire una password di 8 caratteri
; e di confrontarla con una password memorizzata nel segmento dati
; il programma non deve visualizzare la password mentre viene inserita
; ogni carattere deve essere sostituito a video con un '*'
; se la password e' corretta il programma deve stampare un messaggio di
; benvenuto altrimenti un messaggio di errore
data segment
msg1 db 'Inserire password di 8 caratteri:$'
msg2 db 'Ok!Benvenuto!$'
msg3 db 'Password Sbagliata$'
accapo db 13,10,'$'
san db 'sansiro'
code segment
lea dx,msg1
mov ah,9
int 21h; visualizza messaggio
mov cx,8
caratteri:
mov ah,00h
int 16h; legge carattere da tastiera e lo mette in al
mov al,'*'
int 10h
loop caratteri; stampa asterischi quando inserisci un carattere
cmp al,san ; confronto con password
jne pas_sba
lea dx,accapo
mov ah,9
int 21h ; vai a capo
lea dx,msg2
mov ah,9
int 21h; visualizza messaggio di benvenuto
jmp fine
pas_sba:
lea dx,msg3
mov ah,9
int 21h ; visualizza messaggio
fine:
Che ne pensate? Dove sbaglio?
Grazie in anticipo.