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

20.Организация взаимодействия мп i8086 с клавиатурой

Контроллер клавиатуры распознает каждую нажатую клавишу и помещает ее в скэн-код или номер порта 60h. Любой клавише соответствует два скэн-кода: код нажатия и код отпускания(на 80h больше).

При нажатии клавиши вырабатывается сигнал аппаратного прерывания, по которому вызывается процедура int 09 – стандартногообработчика клавиатуры.

Int09 считывает из порта 60h скэн-код нажатой клавиши и анализирует его значение. В соответствии с состоянием байта флагов вырабатывается соответствующий ASCII-код нажатой клавиши и помещается вместе со скэн-кодем в кольцевой буфер ввода.

Буфер располагается в области данных BIOS, в ячейке 41Eh-43Ch адресуется двумя указателями. Адрес хвостового символа - первая свободная ячейка. Адрес головного символа- самый старый код помещает в буфер. При запросе прикладной программы из буфера считывается самый старый код, адрес головного символа увеличился на 2. при нажатии клавишей скэн-код и ASCII-код помещаются по адресу хвоста, при этом значение хвостового указателя увеличится на 2. если буфер пуст – оба указателя равны между собой, причем в начале работы они равны 1E. Буфер переполнен, когда адрес головы на 4 больше, чем адрес хвоста.

21.Организация текстового видеобуфера. Пример работы с текстовым видеобуфером.

Текстовый видеобуфер находится по адресу 0b800h. Количество страниц зависит от адаптера. Размер страницы=4кб. Страницы нумеруются с 0. Любой код, записывающийся в видеобуфер, сразу отображается на экране в определенной позиции. Символ занимает в видеобуфере 2 байта: код символа и атрибуты. Байты записываются в видеобуфер в том порядке, в котором должны появиться на экране, управляющие коды значения не имеют. Чтоб получить доступ в видеобуфер, требуется в сегментный регистр ES занести сегментный адрес буфера. Значение смещения определяет позицию символа на экране. Вывод осуществляется командами пересылки строк

Mov ax, 0b800h

Mov es,ax

Mov di, 80*2*17+25*2 ; начальный символ на экране

Lea si, message

Mov cx, len_mes

Rep mov sb

; вобласти данных

Message DB ‘П’,65,’Р’,65,‘И’,65, ‘М’,65, ‘Е’,65, ‘Р’,65

Len_mes equ $-message

80*2*12+35*2, 80 – количество мест, 12 – строка, 35 – позиция в строке

22. Особенности мп i80386. Виды организации логического пространства

Особенности:

1. 32 битная архитектура

2.объем адресного пространства 4Гб

3.аппаратно реализованный механизм виртуальной памяти.

4.аппаратно реализованная многозадачность.

5. работа в 3-х режимах: нормальном, защищенном, виртуальный машинный.

23.Структура кода команды мп i80386:

масштаб

SS=00

1

SS=01

2

SS=10

4

SS=11

8

Префиксы- модифицирует операцию следующей команды. Префикс операнда –переключает 16 или 32 битные операнды. Префикс размера адреса- переключает формирование 16 или 32 размеры адреса. Код операции- для новых команд 2байт, 1байт- 0Fh адрес новой команды. Значение служебных полей W,D,S см. i8086. Пост-байт – вместе с байтом SIBопределяют метод адресации. Байт SIB-байт масштабируемого индекса служит для представления сложных структур данных и имеет следующий формат: ss-index-BASE .

Поле index- задает индексные регистры.

Index

Регистры

000

EAX

001

ECX

010

EDX

011

EBX

100

----

101

EBP

110

ESI

111

EDI

Mod

Base

операнд

00

000

DS:[EAX+S*I]

00

001

DS:[ECX+S*I]

00

010

DS:[EDX+S*I]

00

011

DS:[EBX+S*I]

00

100

DS:[ESP+S*I]

00

101

DS:[EBP+disp32+S*I]

00

110

DS:[ESI+S*I]

00

111

DS:[EAX+S*I+disp8]

-

-

----------

10

000

DS:[EAX+S*I+disp32]

Если index=0 не используется масштабирование. Комбинации с полем mod пост байта указывает размер базы и смещение для 32 битных операндов.