~1 (Интерфейсы и периферийные устройства), страница 2

2016-07-31СтудИзба

Описание файла

Документ из архива "Интерфейсы и периферийные устройства", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "~1"

Текст 2 страницы из документа "~1"

org 100h ;нач. знач. счетчика - 100Н

;Начало основной программы---------------------------------------------------

start: call clear ;ярко-белые симв. на синем

;

mov cx,len1 ;

mov dh,10 ;

mov dl,27 ;

mov bp,offset mes1 ;

call symv ;вывод на экран строки симв.

;

call nklav ;идентиф. нажатой клавиши

call clsym ;стирание из буфера символа

;

call clear ;ярко-белые симв. на синем

;

mov cx,len2 ;

mov dh,10 ;

mov dl,23 ;

mov bp,offset mes2 ;

call symv ;вывод на экран строки симв.

;

mov cx,len3 ;

mov dh,12 ;

mov dl,23 ;

mov bp,offset mes3 ;

call symv ;вывод на экран строки симв.

;

nrv2: call nklav ;идентиф. нажатой клавиши

;

cmp ah,02h ;

je nrv3 ;

cmp ah,03h ;

je nrv10 ;

call clsym ;

jmp nrv2 ;

nrv10: jmp nrv6 ;

;

nrv3: call clear ;ярко-белые симв. на синем

call clsym ;стирание из буфера символа

;

mov cx,len4 ;

mov dh,0 ;

mov dl,10 ;

mov bp,offset mes4 ;

call symv ;вывод на экран строки симв.

;

mov ah,06h ;функция задания окна

mov al,0 ;режим создания

mov bh,2Fh ;атрибут символов - з/ярко-б

mov ch,1 ;верхняя Y-координата

mov cl,0 ;левая Х-координата

mov dh,24 ;нижняя Y-координата

mov dl,79 ;правая Х-координата

int 10h ;прерывание BIOS

;

mov ah,02 ;

mov bh,0 ;

mov dh,1 ;

mov dl,0 ;

int 10h ;

;Запись символов в буфер(buf1)

mov ah,3Fh ;

mov bx,0 ;

mov cx,100 ;

mov dx,offset buf1 ;

int 21h ;

;

mov lensym,ax ;

inc lensym ;

call nrv11 ;Состояние ACK,BUSY

mov si,0 ;

dlsh: dec lensym ;

mov al,offset buf1[si] ;

mov dx,378h ;

out dx,al ;Выставление данных

mov dx,1000 ;

call delay

mov dx,37Ah

mov al,00001001b

out dx,al ;Выставляем строб

mov dx,1000

call delay

mov dx,37Ah

mov al,00001000b

out dx,al ;Снимаем строб

cmp lensym,0

jz kon

inc si

call nrv11

jmp dlsh

;Передача в принтер символа конца строки

kon: call nrv11

mov al,10

mov dx,1000

call delay

mov dx,378h

out dx,al

mov dx,1000

call delay

mov dx,37Ah

mov al,00001000b

out dx,al

mov dx,1000

call delay

mov dx,37Ah

mov al,00001001b

out dx,al

mov dx,10000

call delay

mov al,13

mov dx,378h

out dx,al

mov dx,10000

call delay

mov dx,37Ah

mov al,00001000b

out dx,al

mov dx,10000

call delay

mov dx,37Ah

mov al,00001001b

out dx,al

jmp nrv6

;

nrv6: mov ax,0003h

int 10h

;

call clsym

ret

;

;ПП Экран: ярко-белые символы на синем фоне.---------------------------------

clear: mov ah,06h ;функция задания окна

mov al,0 ;режим создания

mov bh,1Fh ;атрибут символов - c/ярко-б

mov ch,0 ;верхняя Y-координата

mov cl,0 ;левая Х-координата

mov dh,24 ;нижняя Y-координата

mov dl,79 ;правая Х-координата

int 10h ;прерывание BIOS

ret

;ПП. Вывод на экран строки символов.-----------------------------------------

symv: mov ah,13h

mov al,0

mov bh,0

mov bl,1Fh

push ds

pop es

int 10h

ret

;ПП. Идентификация нажатой клавиши.------------------------------------------

nklav: lahf

or ah,01000000b

sahf

nrv1: mov ah,11h

int 16h

jz nrv1

ret

;ПП. Стирание из буфера символа.---------------------------------------------

clsym: mov ax,0C00h

int 21h

ret

;ПП. Задержка----------------------------------------------------------------

delay: mov ah,86h

mov cx,0

int 15h

ret

;ПП. Проверка регистра состояния---------------------------------------------

nrv11: mov cx,1000

nrv112: push cx

mov dx,379h

in al,dx

mov ack,al

mov busy,al

and ack,40h

cmp ack,40h

jne nrv111

and busy,80h

cmp busy,80h

jne nrv111

nrv111: pop cx

loop nrv112

ret

;ДАННЫЕ.---------------------------------------------------------------------

mes1 db 'ПРОГРАММА - "PRINT"'

len1=$-mes1

mes2 db '1. Вывод на печать данных из буфера.'

len2=$-mes2

mes3 db '2. Выход из программы.'

len3=$-mes3

mes4 db 'Наберите выводимый на печать текст с помощью клавиатуры.'

len4=$-mes4

buf1 db 100 dup('*')

lensym dw 0

ack db ?

busy db ?

;----------------------------------------------------------------------------

end start

Задание 7. Исследовать режим тестирования СОМ. Написать программу на ассемблере.

.model tiny ;модель памяти, исп. для СОМ

.code ;начало сегмента кода

org 100h ;нач. знач. счетчика - 100Н

;Начало основной программы---------------------------------------------------

start: call clear ;ярко-белые симв. на синем

;

mov cx,len1 ;

mov dh,10 ;

mov dl,27 ;

mov bp,offset mes1 ;

call symv ;вывод на экран строки симв.

;

call nklav ;идентиф. нажатой клавиши

call clsym ;стирание из буфера символа

;

call clear ;ярко-белые симв. на синем

;

mov cx,len2 ;

mov dh,10 ;

mov dl,23 ;

mov bp,offset mes2 ;

call symv ;вывод на экран строки симв.

;

mov cx,len3 ;

mov dh,12 ;

mov dl,23 ;

mov bp,offset mes3 ;

call symv ;вывод на экран строки симв.

;

nrv2: call nklav ;идентиф. нажатой клавиши

;

cmp ah,02h ;

je nrv3 ;

cmp ah,03h ;

je nrv10 ;

call clsym ;

jmp nrv2 ;

nrv10: jmp nrv6 ;

;

nrv3: call clear ;ярко-белые симв. на синем

call clsym ;стирание из буфера символа

;

mov cx,len4 ;

mov dh,0 ;

mov dl,10 ;

mov bp,offset mes4 ;

call symv ;вывод на экран строки симв.

;

mov ah,06h ;функция задания окна

mov al,0 ;режим создания

mov bh,2Fh ;атрибут символов - з/ярко-б

mov ch,1 ;верхняя Y-координата

mov cl,0 ;левая Х-координата

mov dh,24 ;нижняя Y-координата

mov dl,79 ;правая Х-координата

int 10h ;прерывание BIOS

;

mov ah,02

mov bh,0

mov dh,1

mov dl,0

int 10h

;

mov ah,3Fh

mov bx,0

mov cx,100

mov dx,offset buf1

int 21h

;Инициалицация СОМ1

initcom1 proc

mov ax,40h

mov es,ax

mov dx,es:[0]

add dx,3

mov al,10000000b

out dx,al

dec dx

dec dx

mov al,0

out dx,al

dec dx

mov al,0C0h

out dx,al

ret

initcom1 endp

;Инициализация регистра контроля линии

initrg proc

add dx,3

mov al,00000000b

or al,00000011b

or al,00000000b

or al,00000000b

out dx,al

inc dx

mov al,10h

out dx,al

sub dx,3

mov al,0

out dx,al

ret

initrg endp

;Готовность СОМ1

check proc

try: mov dx,es:[0]

add dx,5

in al,dx

test al,1Eh

jz m0

lea dx,error

mov cx,len5

mov dh,10

mov dl,23

mov bp,offset mes5

call symv ;вывод на экран строки симв.

jmp exit

m03: test al,01h

jnz m4

test al,20h

jz try

ret

check endp

;Работа с портом

work proc

m4: mov ah,0

int 16h

push ax

push ax

mov dx,es:[0]

add dx,5

mov cx,10

m1: in al,dx

test al,20h

jz m2

loop m1

m2: sub dx,5

pop ax

out dx,al

add dx,5

m3: in al,dx

test al,1

jz m3

sub dx,5

in al,dx

mov ah,0Eh

int 10h

pop ax

cmp al,1Bh

jne m4

ret

work endp

;Выход из программы

exit: mov ax,4C00h

int 21h

nrv6: call clsym

ret

;ПП Экран: ярко-белые символы на синем фоне.---------------------------------

clear: mov ah,06h ;функция задания окна

mov al,0 ;режим создания

mov bh,1Fh ;атрибут символов - c/ярко-б

mov ch,0 ;верхняя Y-координата

mov cl,0 ;левая Х-координата

mov dh,24 ;нижняя Y-координата

mov dl,79 ;правая Х-координата

int 10h ;прерывание BIOS

ret

;ПП. Вывод на экран строки символов.-----------------------------------------

symv: mov ah,13h

mov al,0

mov bh,0

mov bl,1Fh

push ds

pop es

int 10h

ret

;ПП. Идентификация нажатой клавиши.------------------------------------------

nklav: lahf

or ah,01000000b

sahf

nrv1: mov ah,11h

int 16h

jz nrv1

ret

;ПП. Стирание из буфера символа.---------------------------------------------

clsym: mov ax,0C00h

int 21h

ret

;ПП. Задержка----------------------------------------------------------------

delay: mov ah,86h

mov cx,0

int 15h

ret

;

;ДАННЫЕ.---------------------------------------------------------------------

mes1 db 'ПРОГРАММА - "COM"'

len1=$-mes1

mes2 db '1. Передача данных в СОМ-порт.'

len2=$-mes2

mes3 db '2. Выход из программы.'

len3=$-mes3

mes4 db 'Наберите выводимый в СОМ-порт текст с помощью клавиатуры.'

len4=$-mes4

buf1 db 100 dup('*')

mes5 db 'Ошибка порта СОМ 1',7,0Dh,0Ah,S

len5=$-mes5

;----------------------------------------------------------------------------

end start

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее