Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
48
Добавлен:
20.03.2015
Размер:
32.77 Кб
Скачать

.model small ; модель памяти, используемая для ЕХЕ

.stack 100h ; сегмент стека размером в 256 байт

.code

start: mov ax,@data ; сегментный адрес строки message

mov ds,ax ; помещается в DS

mov dx,offset messag1 ; в регистр dx помещается адрес "приглашения к вводу"

mov ah,9 ; функция DOS "вывод строки приглашения к вводу"

int 21h ; вывод "приглашения на экран"

mov dx,offset messag3 ; в регистр dx помещается адрес буфера для ввода

; символов

mov ah,0Ah ; функция DOS "ввод строки"

int 21h ; разрешен ввод с клавиатуры"

; формируем строку вывода введенной строки

mov bx,offset messag2

mov di,bx ; сохраняем адрес строки для вывода

;push bx

xor cx,cx

mov cl,lenth ; формируем длину введенной строки

add cl,30h

mov [bx+10],cl

sub cl,30h ;

xor si,si

; переносим по символьно в выходной буфер введенную строку

l1: mov bx,dx

mov al,[bx+si+2]

mov bx,di

;pop bx

mov [bx+si+15],al

inc si

loop l1

mov cl,'$' ; записываем символ окончания вывода

mov [bx+si+16],cl

mov dx,offset messag2 ; выводим строку ввода

mov ah,9

int 21h

mov dx,offset endstr ; переводим курсор на новую строку

mov ah,9

int 21h

mov ax,4C00h

int 21h ; функция DOS "завершить программу"

.data

messag1 db "Введите строку",0Dh,0Ah,'$'

messag2 db "Строка",80 dup(" "),0Dh,0Ah,'$' ;буфер для вывода строка

endstr db 0Dh,0Ah,'$' ; коды конца строки

; буфер ввода

messag3 db 80

lenth db 0

end start