Читайте также:
|
|
codesg segment para 'code'
assume cs:codesg, ds:codesg, ss:codesg, es:codesg
org 100h
begin: jmp main
main proc near
call clear_scrin
; вывод сообщения на экран
mov row,09
mov col,10
lea bp, [message]; адрес строки
mov cx, 15;длина строки
call write_string
;Cмещение курсора на конец выведеного сообщения
add col, 18
lea si, cout
wr:
; Установка позиции курсора
mov ah, 02h
mov bh, 00
mov dl, col
int 10h
;ожидание ввода с клавиатуры без эхоотображения
mov ah, 00h
int 16h
cmp al, 0dh; конец ввода «Enter»
je wr1
; Введенный символ из al записывается в строку cout
mov [si], al
inc si
; выводится на экран в текущую позицию курсора символ '*'
mov ah, 09
mov al, '*'
mov bh, 00
mov cx, 1
int 10h
inc col
inc coun
cmp coun, 5;вводится только 5 символов
jne wr;повторяем ввод символа
lea si, parol
lea bp, [cout]
wr1:
mov ah, [si]
mov al, [bp]
cmp ah, al
jne q;выход из программы
cmp cl, coun
je wr2
inc si
inc bp
inc cl
jmp wr1
;выход из программы
MOV ah, 8h
int 21h
q:
call clear_scrin
mov ah, 13h;установка курсора
mov bh, 0
mov bl, 12
mov dh, 6
mov dl, 6
lea bp, mess1
mov cl, 10
mov ch, 0
mov al, 1
int 10h
ret
wr2:
call ok
main endp
;вывод на экран сообщения о правильном вводе пароля
ok proc near
call clear_scrin
k:
lea bp,[mess];адрес строки
mov cl, 5
call write_hello
jmp k
ret
ok endp
clear_scrin proc near
; Очистка экрана
mov ax, 0600h; ah=06-прокрутка экрана
; al=00-весь экран
mov bh, 07
mov cx, 0000
mov dx, 184fh
int 10h
ret
clear_scrin endp
write_string proc near
mov ah, 13h
mov al,1
mov bh, 00; номер видео страницы
mov bl, 12
mov dh, 6;координаты по строке
mov dl, 6;координаты по столбцу
int 10h
ret
write_string endp
write_hello proc near
mov ah, 13h
mov al,1
mov bh, 00;номер видео страницы
call cveta
mov dh, 6;координаты по строке
mov dl, 6;координаты по столбцу
int 10h
ret
write_hello endp
cveta proc near
inc bl
cmp bl, 0eh
jb m1
mov bl, 02h
m1: ret
cveta endp
message db 'Vvedite parol: '
mess db 'hello'
mess1 db 'Vi owiblis!'
str1 label byte
row db 00
col db 00
cout db 6 dup (' ')
parol db 'hello'
count db?
coun db 0
codesg ends
end begin
Дата добавления: 2015-08-17; просмотров: 77 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
C0 - Нижний левый угол B3 - Вертикальная линия | | | Дополните программу. Введите строку текста и выведите его по буквам в режиме телетайпа разными по цвету буквами. |