Студопедия

Главная страница Случайная страница

Разделы сайта

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






Опишите правила проектирования программных прерываний, взаимодействие прикладных и системных обработчиков прерываний.






Набор и назначение внутренних прерываний строго регламентированы для конкретной модели процессора. Каждое внутренне прерывание связано с определенным событием в процессоре и с определенным номером в списке обрабатываемых прерываний. Например, в процессорах серии Intel 80x86 при делении на нуль возникает внутреннее прерывание с номером 0. При обработке внутренних запросов внешний контроллер прерываний не используется, т.к. процессор уже имеет информацию о номере прерывания. Переход на нужную процедуру обработки выполняется в соответствии с принципом, реализованном в конкретном процессоре.Если нужно вызвать программное прерывание из текущей программы, программист в соответствующем месте программы должен разместить специальную команду. Для процессоров серии Intel 80x86 такой командой является INTn, где n – номер нужного прерывания. При выполнении такой команды процессор получает информацию о номере прерывания непосредственно из кода команды и выполняет переход на нужную процедуру так же, как и в случае обработки других видов прерываний. При обработке программных прерываний внешний контроллер не используется.

 

43 Опишите способы ввода/вывода текстовой информации на языке Ассемблер

Ассемблер, ориентированный на МП 8086 использует графический адаптер EGA. Этот адаптер обеспечивает хранение 2 графических страниц с разрешением 340х350 пикселей и 16 цветов на каждый.Адаптер поддерживает 64 цвета, хотя в каждый момент времени на экране может содержаться только 16 цветов. Этот набор 16цветов, выводимых на экран(цветная палитра) задается программа и может легко изменяться.Фоновый цвет всего экрана может принимать любое из 16 текущих значений палитры, причем на обеих страницах он изменяется одновременно. Смена цвета фона не затрагивает выведенного на экран изображения.Помимо произвольных изображений, рисуемых по пикселам, на экране в графическом режиме можно отображать и текстовую информацию, используя функции DOS и BIOS. (например INT21h с функцией 09h, или 0Аh). Для позицирования строк на экране можно использовать ф-цию 02Н драйвера BIOS (int10h), устанавливающую местоположения курсора в текстовых координатах(номер строки от 0 до 24, номер столбца от 0 до 79).При программировании графического изображения можно использовать след. Функции видеодрайвера BIOS(INT10h) 00Н- установка видеорежима, 05Н – установка видео страницы, 0Fh –получение видеорежима, 10Н, подфункция 00Н – установка цветового регистра, 10Н, подфункция 02Н – установка цветовых регистров палитры.00Н позволяет переключать режимы видеосистемы. Для адаптеров EGA текстовый режим имеет код 03, графический 10Н.Программа использующая оба режима может использовать функцию 0Fh(определяет номер видеорежима).Функция 05Н переключает видеостраницу, номер страницы заносится в регистр al. Для рисования изображения предусмотрена единственная функция 0Ch – вывод пиксела. В регистр al заносится значение цвета пиксела, в регистр bh -номер страницы(не обязательно активный), в регистре cx, dx координаты пиксела.(х= от 0 до 639, y= 0 до 349).

Цвета пикселов на экране, как и цвета фона задаются содержимым цветовых регистров. Всего а адаптере EGA имеется 17 цветовых регистров, каждый из которых может содержать коды от 0 до 63. Регистр 0 определяет цвет фона, 16 – цвет края экрана, а с 1 по 15 – цвета пикселов. Код цвета, указываемого в программе(al функции 0Cн) определяет не цвет, а номер цветового регистра используемого для вывода на экран заданного пиксела. Цвет пиксела определяется числом, хранящемся в регистре.

Каждый цветовой регистр содержит 6 значащих разрядов, которые определяют интенсивность красного, зеленого, синего цветов. Разряды 0, 1, 2 закреплены за цветами красный, зеленый и синий с интенсивностью 2/3 от максимальной, а 3, 4, 5 за теми же цветами, с интенсивностью 1/3.

Mov ah, 0ch

Mov al, 5

Mov bh, 0

Mov cx, 100

Mov dx, 150

Int 16h

 

44Способы ввода информации:

1) Обращение к клавиатуре как файлу с помощью 3Fh прерыванию INT 21h.

Используется предопределенный дескриптор 0, закрепленный за клавиатурой. Число вводимых символов указывается в регистре сx, однако ввод завершается после того как нажата клавиша Enter.

2) Использование группы функции DOSINT 21h обеспечивающий посимвольный ввод с клавиатуры в различных режимах.7 функции прерывания: 01h – ввод символа с эхом, 02h – прямой ввод-вывод через консоль, 07h – нефильтрованный вывод без эхо, 0ah – буферизированный ввод строки с эхом, 0bh – проверка состояния стандартного устройства ввода, 0ch – сброс вводного буфера и ввод.

3)Посимвольный ввод путём обращения в обход DOS непосредственно к драйверу BIOS с помощью прерывания 16h.

Работа с клавиатурой на уровне BIOS считывает двухбайтные коды поступающие в кольцевой буфер ввода и анализировать слово флагов клавиатуры. Для ввода используется функция прерывания 16h: 00h –чтение двухбайтного кода из входного буфера. 01h - чтение двухбайтного кода без извлечения его из буфера. 02h – чтение флагов клавиатуры(ah – скан код, al – код ASCII)

Способы вывода информации:

1) Обращение к экрану как файлу с помощью функции 40h прерывание 21h.Вывод осуществляется с помощью предопределенных дескрипторах 1(стандартное устройство вывод), 2(ошибки выводимые на экран). Число выводимыхсимволов указывается в регистре cx, адрес выводимой строки в DS.

2) Использование группы функции DOS используется посимвольный вывод: 02h – вывод символа, 06h – прямой ввод-вывод, 09h – вывод строки.

 

 

45) Программы типа.COM

Программы типа.СОМ хранятся на диске в виде файлов, в которых содержится абсолютный образ машинных команд, предназначенных для выполнения. Так как файлы не содержат никакой настроечной информации, то они компактнее эквивалентных файлов типа.ЕХЕ, к тому же загружаются для выполнения немного быстрее. Заметим, что DOS не пытается выяснить, действительно ли файл типа.СОМ содержит выполнимую программу (в отличие от файла.ЕХЕ нет признака, ни контрольной суммы). Система заносит любой файл с расширением.СОМ в память и передает ему управление.

Tак как программы типа.СОМ загружаются непосредственно над префиксом сегмента программы и, кроме того, не имеют заголовка, который может задавать другую точку входа, то их начальный адрес всегда составляет 0100H, что определено размером префикса. Максимальная длина программы типа.СОМ составляет 65536 байт минус длина префикса (256 байт) и обязательное слово стека (2 байта) [2, c. 54].

Когда управление передается программе типа.СОМ, все регистры указывают на префикс. В указатель стека SР, если позволяет память, помещается число 0FFFFН, в противном случае - максимальный адрес памяти минус 2 байта. (DOS при входе в программу помещает в стек нулевое слово.)

Несмотря на то что размер выполнимого файла типа.СОМ не может превзойти 64 К, существующие в настоящее время версии системы МS DOS выделяют программам типа.СОМ в момент их загрузки всю область транзитных программ. Так как такие программы часто являются наследием раннего периода МS-DOS и необязательно корректны в отношений управления памятью, то операционная система делает наихудшее предположение и дает программам типа.СОМ все, что возможно. Если программа типа.СОМ хочет использовать для возбуждения другого процесса функцию ЕХЕС, то сначала она должна сократить выделяемую ей память до минимума, обеспечивающего продолжение ее работы, обращая внимание при этом на сохранение стека программы. Когда программа типа.СОМ завершает выполнение, она возвращает управление операционной системе с помощью системного прерывания Int 21Н с функцией 4СН.

Прикладная программа типа.СОМ может компоноваться из многих отдельных объектных модулей. Все модули должны использовать одно и то же имя сегмента программы и имя класса, причем модуль с точкой входа по относительному адресу 0100Н внутри сегмента при компоновке должен быть первым. Кроме того, внутри программы типа.СОМ все процедуры В процессе компоновки программы типа.СОМ компоновщик выдает на экран дисплея сообщение: Warning: no stack segment (Предупреждение: нет сегмента стека)

Это сообщение можно игнорировать. Результатом работы, компоновщика является файл типа.ЕХЕ, который до выполнения должен быть преобразован с помощью системной утилиты EXE2BIN в файл типа.СОМ.должны иметь атрибут NEAR (ближний), так как вся выполнимая программа постоянно находится в одном сегменте

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.