Под вводом-выводом понимается обмен инструкцией между МП и внешними устройствами. Передача инструкций осуществляется через порты. Порт- управляющий регистр аппаратуры. Любой порт имеет свой номер в диапазоне от 0 до FFFFh. С любым внешним устройством связан свой порт, их номера заранее известны (определены архитектурой). МП осуществляет обмен информацией с устройствами с помощью команд INT и OUT. EOI- сигнал конца прерывания обмена от МП.
Адреса некоторых портов:
20h-регистр обслуживающих запросов КП, схема анализа приоритетов, регистр входных запросов. 21h-регистр маски КП. 40h,41h,42h- таймер.60h- клавиатура.61h-порт управления.
16. Особенности программ в СОМ-формате. Структура, хранение на диске, загрузка в память, варианты завершения.
Особенности:
- минимальная модель памяти
- размер < 64 кб (сегмент)
- абсолютный образ памяти
- не содержит заголовков и настроечной информации, только машинный код
- не контролируется содержимое
Загружается в память с помощью системного загрузчика EXEC. Данная функция строит в памяти т.н. префикс сегмента программы (PSP) – настраивает адреса и передает управление на точку входа в программу (первая исполняемая инструкция). PSP – специальная структура, в кот. по фиксированным адресам хранится информация, используемая в процессе работы программы. При загрузке в стек заносится нулевое слово, кот. используется ля завершения программы. Max размер=64кб-256(psp)-2б(стек)
ORG 100h (явно задает смещение, резервирование под префикс первой инструкции)
<Имя процедуры> PROC NEAR
;код программы
;завершение процедуры
<имя процедуры> ENDP
; определение данных
<Имя сегмента кодов> ENDS
END <имя программы>
Если определение данных требуется сделать в начале программы, то первой инструкцией должна быть
mp main
Варианты завершения:
- инструкция RET
- INT 20h в конце процедуры
- ф-ция 4ch прерывания INT 21h позволяет передать в вызываемую процедуру код завершения
17. Особенности программ в ЕХЕ-формате. Структура, хранение на диске, загрузка в память, варианты завершения.
- малая, средняя, большая модель памяти
- содержит любое количество сегментов, лед. может иметь любой размер
- имеет спец. заголовок, кот. используется системным загрузчиком
загружается в память с помощью системного загрузчика EXEC. Данная функция строит в памяти т.н. префикс сегмента программы (PSP) – настраивает адреса и передает управление на точку входа в программу (первая исполняемая инструкция).
PSP – специальная структура, в кот. По фиксированным адресам хранится информация, используемая в процессе работы программы.
Последовательность сегментов определяется программистом. При загрузке программе выделяется 2 блока памяти, один под переменные окружения, другой для самой программы. Область окружения содержит строки ASCIIZ, т.е. строки символов, заканчивающиеся нулем. Каждая строка описывает глобальную переменную системы, примеры: TEMP=C:\WINDOWS\TEMP,0 ; COMSPEC=C:\cmd.exe,0. В блоке памяти выделенном программе загрузчик строит информационную структуру – префикс программного сегмента (PSP), настраивает адреса, загружает регистры, передает управление на точку входа программы. SP настраивается по заголовку, данные остаются неадресованными, т.к. DS и ES
указывают на префикс. Инициализацию данных должна выполнить сама программа в начале своей работы.