Как запустить консольное приложение с моделью 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д