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