Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Управление вводом выводом



Под вводом-выводом понимается обмен инструкцией между МП и внешними устройствами. Передача инструкций осуществляется через порты. Порт- управляющий регистр аппаратуры. Любой порт имеет свой номер в диапазоне от 0 до FFFFh. С любым внешним устройством связан свой порт, их номера заранее известны (определены архитектурой). МП осуществляет обмен информацией с устройствами с помощью команд INT и OUT. EOI- сигнал конца прерывания обмена от МП.

Адреса некоторых портов:

20h-регистр обслуживающих запросов КП, схема анализа приоритетов, регистр входных запросов. 21h-регистр маски КП. 40h,41h,42h- таймер.60h- клавиатура.61h-порт управления.

16. Особенности программ в СОМ-формате. Структура, хранение на диске, загрузка в память, варианты завершения.

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

- минимальная модель памяти

- размер < 64 кб (сегмент)

- абсолютный образ памяти

- не содержит заголовков и настроечной информации, только машинный код

- не контролируется содержимое

Загружается в память с помощью системного загрузчика EXEC. Данная функция строит в памяти т.н. префикс сегмента программы (PSP) – настраивает адреса и передает управление на точку входа в программу (первая исполняемая инструкция). PSP – специальная структура, в кот. по фиксированным адресам хранится информация, используемая в процессе работы программы. При загрузке в стек заносится нулевое слово, кот. используется ля завершения программы. Max размер=64кб-256(psp)-2б(стек)

Общая структура:

<имя сегмента кодов>SEGMENT<параметры>

ASSUME СS:<имя сегм. кодов> DS: :<имя сегм. Дан.>SS:<имя сегмента стека> ES: nothing

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

указывают на префикс. Инициализацию данных должна выполнить сама программа в начале своей работы.

Структура:

<имя сегмента стека> SEGMENT <параметры>

; определение размера стека

<имя сегмента стека> ENDS

<имя сегмента данных> SEGMENT <параметры>

; определение данных

<имя сегмента данных> ENDS

<имя сегмента кодов> SEGMENT <параметры>

ASSUME СS:<имя сегм. кодов> DS: <имя сегм. Данн.> SS:<имя сегмента стека> ES: nothing

<имя процедуры> PROC FAR

;Инициализация программы

; код

; завершение

<имя процедуры> EDNP

<имя сегмента кодов> ENDS

END <имя основной процедуры>

Инициализация:

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

Варианты завершения:

- FAR RET

- 4ch int 21h




©2015 studenchik.ru Все права принадлежат авторам размещенных материалов.