Assembler: работа в текстовом режиме

Печать E-mail
(8 голосов)
Автор Administrator   
01:08:2008 г.
Задача: Составить программу, выводящую на экран некоторое сообщение, запрашивающее ввод произвольного слова, которое затем и выводится в следующей строке экрана, но вместо букв некоторый заполнитель (пример- ******), через некоторое время вместо заполнителя должны по одной проявляться настоящие символы введённого слова.

Листинг программы


masm
.model small
.model tiny
.code
org 100h
.286
start:
;очистить экран
c1: cmp a1,50
jz ec1
c2:
cmp b1,80
jz ec2
mov ah,2
mov dh,a1
mov dl,b1
int 10h
mov ah,02
mov bl,10h
mov dl,' '
int 21h
inc b1
jmp c2
ec2:
inc a1
mov dl,0
mov b1,dl
jmp c1
ec1:
mov ah,2
mov dh,4
mov dl,15
int 10h
mov ah,09h
mov dx,offset mes1
int 21h
mov ah,0ah ;Запрос функции ввода
lea dx,F ;Загрузить адреса списка параметров
int 21h ;Вызвать DOS
mov ah,2
mov dh,8
mov dl,15
int 10h
mov ah,09h
mov dx, offset mk1
mov cx,6
cikl1:
mov ah,86h
push cx
mov cx,10
mov dx,0
int 15h
pop cx
mov bx,6
sub bx,cx
mov dl,offset GrFLD1[bx]
mov ah,02
int 21h
loop cikl1
mov ah, 0; ожидание символа
int 16h
ret
mes1 db 'Vvedite slovo iz 6 bukv: ','$'
mk1 db '******','$'
F LABEL BYTE ;Список параметров:
MAXLEN1 DB 10 ; Максимальная длина
ACTLEN1 DB ? ; Реальная длина
GrFLD1 DB 20 DUP ('$') ;
a db 0
b db 0
a1 db 0
b1 db 0
end start


Результаты работы программы:

Vvedite slovo iz 6 bukv: 123456



123456

 
« Assembler: рисуем прямоугольник   Assembler: сложение десятичных чисел »