Как запустить консольное приложение с моделью small? - Assembler

Узнай цену своей работы

Формулировка задачи:

Мне нужно,что бы консолька запустилась,запросила пароль и далее вывела сообщение о его правильности или не правильности.
model small
stack 256
.data
match db 0ah,0dh,'PASSWORD IS OK','$'
failed db 0ah,0dh,'PASSWORD IS NOT CORRECT','$'
string1 db 07Fh,071h,06Dh,067h,060h,07Bh,064h,'$'
string2 db 10
string db 'Input PASSWORD:','$'
.code
assume ds:@data,es:@data
main:
mov ax,@data
mov ds,ax
mov es,ax
;выводим приглашение ко вводу пароля
mov ah,09h
lea dx,string
int 21h
 
;запрашиваем символы с клавиатуры
lea dx,string2-2
mov ah,0Ah
int 21h
 
;производим расшифровку пароля
mov si,0
mov cx,7
ll:
xor string1[si],34h
inc si
loop ll
 
;процедура проверки правельности пароля
cld
lea si,string1
lea di,string2
mov cx,7
cycl:
repe cmps string1,string2
jcxz equal ; если совподают
jne not_match
equal: ;если пароль верный
mov ah,09h
lea dx,match
int 21h
jmp exit
not_match: ;если пароль не верный
mov ah,09h
lea dx,failed
int 21h
jmp exit
 
jmp cycl
 
exit:
mov ax,4c00h
int 21h
end main

Решение задачи: «Как запустить консольное приложение с моделью small?»

textual
Листинг программы
model small
.386
 
.data
match db 0ah,0dh,'PASSWORD IS OK$'
failed db 0ah,0dh,'PASSWORD IS NOT CORRECT$'
string1 db 7Fh,71h,6Dh,67h,60h,7Bh,64h
passlen equ $-string1
string2 db 10,0,10 dup(?)
string db 'INPUT PASSWORD:$'
 
.stack 
db 256 dup(?)
 
.code
main:
mov ax,@data
mov ds,ax
mov es,ax
 
;выводим приглашение ко вводу пароля
mov ah,09h
lea dx,string
int 21h
 
;запрашиваем символы с клавиатуры
mov ah,0Ah
lea dx,string2
int 21h
 
;производим расшифровку пароля
mov si,0
mov cx,7
ll:
    xor string1[si],34h
    inc si
loop ll
 
mov al,passlen
cmp al,byte ptr [string2+1]
jne not_match
 
;процедура проверки правильности пароля
cld
lea si,string1
lea di,string2+2
mov cx,7
repe cmpsb
jcxz equal 
jne not_match
 
equal: 
mov ah,09h
lea dx,match
int 21h
 
jmp exit
 
not_match:
mov ah,09h
lea dx,failed
int 21h
 
exit:
mov ax,4C00h
int 21h
end main

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5