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

МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО

ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Южно-Российский государственный технический университет (НПИ)

Кафедра автоматики и телемеханики

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторным работам по курсу

“Системное программное обеспечение"

Н овочеркасск 2012

УДК 681.3

Рецензент канд. техн. наук А.В. Седов

Составители: Дереча С.В. , Фоменко Г.П., Онышко Д.А., Фугаров Д.Д.

Методические указания к лабораторным работам по курсу «Системное программное обеспечение» / Южно-Российский. государственный технический университет. Новочеркасск: ЮРГТУ, 2012. 61 с.

Методические указания содержат цели, программы и методические указания для выполнения лабораторных работ по курсу «Системное программное обеспечение».

Предназначены для студентов 3–го курса специальности 2101 - “Управление и информатика в технических системах” дневной формы обучения.

© Южно-Российский государственный технический университет, 2012

© Дереча С.В. , Фоменко Г.П., Онышко Д.А., Фугаров Д.Д.

Лабораторная работа № 1

Использование стандартных функций и разработка собственных прерываний в ОС MSDOS

Продолжительность работы – 4 часа.

Цель работы: приобретение навыков использования стандартных и разработка собственных прерываний в ОС MSDOS.

Используемое оборудование: любой IBM РС-совместимый компьютер.

Используемое программное обеспечение: система программирования Turbo Pascal 7.0.

Подготовка к работе

Изучить по конспекту лекций и приведенной ниже литературе, следующие вопросы:

  • аппаратные и программные прерывания в IBM PC;

  • обращение к функциям MSDOS;

  • разработка собственных прерываний в ОС MSDOS;

  • дополнение к существующему прерыванию в ОС MSDOS;

  • назначение и состав модуля DOS в Turbo Pascal 7.0.

Программа работы

  1. Составьте текст программы на языке Паскаль, которая формирует на экране меню, строки которого соответствуют названиям пунктов 2-4 лабораторной работы. Последний пункт меню - “Выход” - завершает работу программы. Пункты меню имеют сквозную нумерацию (табл. 1.) и выполняются при нажатии соответствующей клавиши. Пока программа должна обрабатывать нажатие клавиши только для завершения работы.

  1. Использование стандартных функций MSDOS. В соответствии с вариантом (табл. 2), заданным преподавателем, добавьте в текст основной программы операторы для вызова требуемой функции MSDOS и вывода полученных результатов на экран дисплея.

  2. Разработка собственного программного прерывания. Добавьте к основной программе процедуру обработки собственного прерывания (номер прерывания задан в табл. 3), в котором будут выполняться те же действия, что и в п.2.

  3. Дополнение к существующему аппаратному прерыванию от таймера. Добавьте к основной программе процедуру обработки прерывания, которая будет являться дополнением к существующему аппаратному прерыванию от таймера. При помощи дополнения к прерыванию реализовать выполнение задания в соответствии с вариантом из табл. 4.

  4. Добавьте к основной программе операторы, которые выводят на экран значения векторов прерывания и точек входа в процедуры обработки прерывания. Значения представить в виде логического адреса и физического адреса.

  5. Сделайте выводы и оформите отчет по лабораторной работе.

табл. 1

№ варианта

1

2

3

4

5

6

7

Нумерация меню

1 - 4

F1 – F4

ABCD

abcd

АБВГ

абвг

F5 – F8

табл. 2

Функция MSDOS

Вар.

Номер

прерыв

Входные параметры

Выходные параметры

Сообщение

12H

AX- размер памяти в кБ.

Количество памяти в кБ.

21H

AX=3000H

AL- основной номер версии.

AH- вспомогат. номер версии.

Номер версии ОС

21H

AH=2AH

AL- день недели (0-вс. и т.д.).

CX- год (1980-2099).

DH- месяц (1-12).

DL- день (1-31).

Дата в формате: день.месяц.год

21H

AH=2CH

CH- часы (0-23).

CL- минуты (0-59).

DH- секунды (0-59).

Время в формате: час.минута.сек.

21H

AH=1BH

AL- кол. сект. в кластере.

CX- кол. байт в секторе.

DX- кол. кластеров.

Объем диска в байтах.

21H

AH=36H

DL- номер диска (0; 1-А).

AX- кол. сект. в кластере.

BX- кол. своб. кластеров.

CX- длина сектора в байтах.

DX- кол. класт. на дорожке.

Количество свободного места в байтах.

21Н

AH=09H

DS:DX- нач.адрес строки с символом ‘$’ в конце.

табл. 3

№ варианта

1

2

3

4

5

6

7

Номер

прерывания

200

201

202

203

204

205

206

табл. 4

вар.

Действие

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

Выдача звукового сигнала с периодичностью 1 сек.

Изменение фона экрана с периодичностью 2 сек.

Изменение цвета символов с периодичностью 3 сек.

Пульсирующее окно с дискретностью изменения параметров 1/9 сек.

Перемещающееся окно с дискретностью изменения координат – 1/6 сек.

Вариант 3 + Вариант 4.

Методические указания к выполнению работы Внутренняя организация мп семейства 80х86 в реальном режиме работы

В реальном режиме работы (например, под управлением MSDOS) любой из процессоров семейства 80х86 функционирует просто как 16-разрядный "быстрый" МП 8086, т.е. полностью соответствуют его программной модели.

Внутренние регистры мп

В состав МП входят следующие блоки регистров (табл. 5):

табл. 5

CS

сегмент кода

DS

сегмент данных

Сегментные

SS

сегмент стека

Регистры

ES

дополнительный сегмент

IP

указатель команд

SP

указатель стека

BP

указатель базы

Регистры

SI

индексный регистр

DI

индексный регистр

Общего

AX

AH

AL

аккумулятор

BX

BH

BL

указатель базы

Назначения

CX

CH

CL

счетчик

DX

DH

DL

расширитель аккумулятора

F

регистр флагов

  • блок сегментных регистров. 4 сегментных регистра используются для хранения 16-и разрядных сегментных адресов начала сегмента.

  • IP – 16-и разрядный регистр указателя команд, в котором хранится адрес смещения команды в кодовом сегменте.

  • регистры общего назначения (РОН) могут использоваться для хранения любой информации. Но, как правило, РОН AX, BX, CX и DX используются в основном для хранения данных и допускают раздельное использование их байтов, а регистры SP,BP,SI,DI используются, в основном, для хранения адресной информации. Кроме того, каждый из РОН имеет специальные функции, которые используются по умолчанию в некоторых командах.

  • регистр флагов (признаков) F содержит признаки последней выполненной АЛУ операции.

Организация памяти

Память представляет собой последовательность байтов, каждый из которых имеет 20-и разрядный физический адрес (исполнительный адрес) в диапазоне 00000-FFFFF. Все пространство памяти представляется как набор сегментов, определяемых программным путем. Размер каждого сегмента составляет 64К. В каждый момент времени в памяти имеется 4 сегмента: CS, SS, DS, ES. Эти сегменты могут не пересекаться, могут частично пересекаться, а если содержимое сегментных регистров одинаково, то они полностью совпадают.

Для определения физического адреса памяти необходимо знать начальный адрес сегмента и внутрисегментное смещение. Физический адрес формируется сумматором блока шинного интерфейса МП (рис. 1) в соответствии со следующей формулой:

FA = SR*16 + ЕА, где:

FA – физический адрес;

SR – содержимое текущего сегментного регистра;

ЕА – эффективный адрес.

рис. 1

Сегментный адрес хранится в одном из сегментных регистров (16 старших разрядов 20-ти разрядного адреса памяти). При вычислении физического адреса памяти к содержимому сегментного адреса дописываются нули. Поэтому начальные адреса сегментов всегда кратны 16.

Смещение в сегменте формируется процессором в зависимости от его режима работы. Если процессор выполняет выборку команд из памяти, то сегментный адрес берется из регистра CS, а смещение – из указателя команд IP (рис. 2). Во всех остальных случаях смещение формируется из содержимого РОН, индексных или базовых регистров. Способ вычисления смещения является способом адресации.

рис. 2

Внутрисегментный адрес называется смещением, если речь идет об аппаратных средствах. В системе команд в этом случае используется понятие эффективный адрес.

Для точного указания адреса в памяти используется логический адрес, который имеет следующий формат записи:

SR:EA; где SR – содержимое сегментного регистра; EA – эффективный адрес.

Например, пусть DS=2000H, EA=3100H. Тогда:

Логический адрес: 2000:3100

Физический адрес: 2000 0 + 3100 = 23100

Иногда объем памяти измеряется в параграфах (§): 1§ = 16 байт.