Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ



НИЗКОУРОВНЕВОЕ

СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ

ДЛЯ IBM PC

 

 

Методические указания

по выполнению курсовой работы

по дисциплине «Системное программное обеспечение»

 

 

УФА 2008

Составитель О.Д. Лянцев

 

УДК 004.45(07)

ББК 32.973-018.2(я7)

 

 

Низкоуровневое системное программирование для IBM PC Методические указания по выполнению курсовой работы по дисциплине «Системное программное обеспечение» / Уфимск. гос. авиац. техн. ун-т; Сост. О.Д. Лянцев. - Уфа, 2008. - 28 с.

 

 

 

Содержатся основные сведения, необходимые для выполнения курсовой работы по дисциплине «Системное программное обеспечение»: о принципах взаимодействия аппаратных и программных средств персонального компьютера IBM PC и о способах программирования основных системных функций. Приведены перечень тем курсовых работ и сведения о содержании основных этапов работ по выполнению курсового проектирования, методика выполнения этих этапов, материалы для оформления и защиты работы.

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

Предназначены для подготовки дипломированных специалистов по направлению 230100 – «Информатика и вычислительная техника» специальности 230102 – «Автоматизированные системы обработки информации и управления».

 

 

Табл.1. Ил.1. Библиогр.: 7 назв.

 

Рецензенты: канд. техн. наук, доц., Н.М. Дубинин, 

                 д-р физ-мат. наук, проф., В.П. Житников

 

© Уфимский государственный авиационный технический

  университет, 2008

 



Содержание

 

 

Введение. 4

1. Задачи курсового проектирования. 4

2. Тематика и содержание курсовых работ. 4

2.1. Ввод информации с клавиатуры терминала. 4

2.2. Вывод текстовой информации на экран терминала. 7

2.3. Вывод графической информации на экран терминала. 11

2.4. Программирование файловой системы MS DOS. 13

2.5. Программирование прерываний. 17

3. Задание к курсовому проектированию.. 20

4. Правила оформления пояснительной записки. 23

5. Правила оформления графического материала. 24

6. Методика курсового проектирования. 25

7. График выполнения курсовой работы.. 25

8. Порядок защиты.. 27

Список литературы.. 28

 



Введение

Настоящие методические указания предназначены для студентов специальности 230102 «Автоматизированные системы обработки информации и управления», выполняющих курсовые работы  по дисциплине «Системное программное обеспечение».

Целью выполнения курсовой работы по дисциплине «Системное программное обеспечение» является формирование у студентов опыта создания прикладных программ на основе низкоуровневых системных функций BIOS и MS DOS.

Назначение указаний – определить цель, тематику, содержание, объем, порядок выполнения работы, направить деятельность студентов по нужному руслу и пояснить основные этапы проектирования. Предлагаемые задания разработаны с использованием типовых методических материалов по курсовому проектированию и специальной литературы по системному программному обеспечению.

Задачи курсовой работы

Задачами курсового проектирования являются:

· закрепление, углубление и обобщение знаний, полученных студентами во время их обучения по дисциплине «Системное программное обеспечение»;

· применение полученных знаний к системному решению типовой задачи по программированию системных функций IBM PC;

·  получение навыков работы со специальной литературой и навыков программирования на ассемблере;

· приобретение опыта аналитической работы и формирование соответствующих умений;

· формирование умений формулировать логически обоснованные предложения, рекомендации и выводы по результатам работы;

· формирование умений выступать перед аудиторией с докладом при защите работы, компетентно отвечать на вопросы, вести дискуссию и убеждать оппонентов в правильности принятых решений [1].

2. Тематика и содержание курсовых работ

Программирование прерываний

Сигналы внешних аппаратных прерываний (от таймера, клавиатуры, дисков и проч.) поступают в процессор не непосредственно, а через контроллер прерываний, в качестве которого используется микросхема Intel 8259A. Обработка аппаратного прерывания обязательно включает в себя процедуры управления контроллером прерываний. Организация системы аппаратных прерываний заключается в том, что к восьми входным выводам контроллера подключаются выводы устройств, на которых возникают сигналы прерываний. Выход INT контроллера подключается к одноименному входу микропроцессора. При этом, кроме сигнала INT, инициирующего процедуру прерывания в микропроцессоре, контроллер передает в микропроцессор по линиям данных номер вектора, через который должна быть вызвана программа обработки поступившего прерывания. Передаваемый номер вектора образуется в контроллере путем сложения базового номера, записанного в одном из его регистров, с номером входной линии, по которой поступил запрос. Номер базового вектора заносится в контроллер автоматически в процессе начальной загрузки компьютера. Контроллер программируется через порты 20h и 21h. Поскольку базовый вектор всегда равен 8, то номера векторов, закрепленных за аппаратными прерываниями, лежат в диапазоне 8h, ... , Fh.

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

Сигнал запроса прерывания IRQ от устройства поступает на вход регистра запросов и устанавливает в 1 соответствующий бит этого регистра. Далее на пути сигнала стоит регистр маски, программируемый через порт 21h. Значение в бите маски разрешает прохождение сигнала, значение 1 - запрещает. Пройдя через маску, сигнал поступает на схему анализа приоритетов. При стандартной настройке схемы приоритетов, приоритеты сигналов IRQ снижаются по мере роста номера сигнала. Пройдя через схему анализа приоритетов, сигнал запроса прерывания поступает на вход регистра обслуживаемых запросов и дает разрешение на установку в 1 его бита (однако не устанавливает его).

 

 

Рис. Логическая структура контроллера прерываний

 

Одновременно сигнал поступает на вход INT микропроцессора, который регистрирует поступление сигнала INT лишь в случае, если установлен флаг разрешения прерываний IF в регистре флагов. Сброс флага IF командой CLI запрещает все аппаратные прерывания. Микропроцессор, получив сигнал INT, отзывается на него выходным сигналом INTA, который поступает в контроллер прерывания и выполняет там два действия. Во-первых, он устанавливает бит регистра обслуживаемых запросов, разрешенный сигналом запроса прерывания. Во-вторых, он сбрасывает бит регистра запросов.

Микропроцессор, одновременно с посылкой в контроллер прерываний сигнала INTA сбрасывает флаг IF в регистре флагов, запрещая все аппаратные прерывания. Прерывания останутся запрещенными до выполнения пользователем команды STI или до установки флага IF каким-либо другим способом.

Установка 1 в бите регистра обслуживаемых запросов воздействует на схему анализа приоритетов. Установленный бит блокирует в схеме анализа приоритетов все уровни прерываний, начиная с текущего и ниже. Таким образом, если не принять специальных мер, даже после завершения обработки прерывания все, прерывания данного и более низких приоритетов останутся заблокированными. Сброс бита регистра обслуживаемых запросов осуществляется посылкой кода 20h в порт 20h. Этот код получил название команды или приказа EOI (End Of Interrupt). Команда EOI должна быть в любой программе по обработке прерываний.

Практически структуру программы обработки прерываний выбирают, исходя из конкретных условий. Часто в самом начале программы выполняют команду STI, чтобы не задерживать обработку прерываний от более приоритетных устройств (в частности, таймера). Приказ конца прерывания EOI посылается в контроллер в самом конце программы, перед завершающей командой IRET с тем, чтобы полностью исключить вложенные прерывания от запросов того же уровня. Однако сигнал прерывания того же (или более низкого уровня) может пройти между командами, реализующими приказ EOI, и командой IRET, что вызовет повторный вход в эту же программу. Чтобы избежать этого, перед командой EOI выполняют команду запрета всех прерываний CLI. Команда IRET не только восстанавливает адрес возврата в регистрах CS и IP, но и содержимое регистра флагов на момент прерывания.

Типичные структуры программы обработки прерываний:

а) STI                                               б)

.....

CLI

MOV AL,20h ; Команда         MOV AL,20h ; Команда

OUT 20h,AL  ; EOI                OUT 20h,AL ; EOI

IRET                                           IRET

при разрешенных вложенных прерываниях (а) и при запрещенных вложенных прерываниях (б).

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

Задание к курсовому проектированию

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

КУРСОВАЯ РАБОТА

«Системное Программное Обеспечение»

Студента группы АСОИ-ХХХ

Фамилия Имя Отчество

Вариант №

При выборе варианта индивидуального задания по номеру варианта необходимо пользоваться приведенным ниже перечнем.

Например, код варианта 14.1.2.2.1 раскрывается следующим образом: задание 14, программа в COM - формате, ввод с клавиатуры средствами BIOS, вывод на экран в графическом режиме, после загрузки программы освободить лишнюю память.

Перечень заданий

а) Основная тема. Программа должна:

1) создать каталог с именем SPO и в нем создать файл с именем KURS_SPO.txt и записать в него символьную строку;

2) вывести на экран содержимое текстового файла FILE_SPO.txt (размером не более 80 байтов) синими символами на желтом фоне;

3) переименовать файл NEWFILE.txt в файл OLDFILE.txt и установить у него атрибут «ReadOnly»;

4) изменить дату и время создания файла MYFILE.txt и вывести их старые и новые значения на экран;

5) переслать файл FILE_SPO.txt из каталога OLDDIR в каталог NEWDIR, изменив его имя на MYFILE.txt;

6) создать на дискете каталог NEWDIR, скопировать в него файлы из каталога  KURS_SPO и удалить каталог  KURS_SPO;

7) вывести на экран параметры командной строки;

8) создать метку тома дискеты, значение которой вводится с клавиатуры;

9) получить из системы текущее время и вывести его значение на экран мерцающими символами;

10) менять при вводе данных с клавиатуры в текстовый файл строчные символы на прописные символы;

11) перехватывать прерывания от системного таймера, уменьшать их частоту путем пересчета и периодически выводить на экран изображение флага России;

12) рисовать на экране шахматную доску и периодически через 2-5 секунд инвертировать цвет квадратов;

13) определять тип символьной строки в текстовом файле (строка букв, десятичное число, 16-ричное число, двоичное число и т.д.);

14) переводить первые символы слов в верхний регистр в текстовом файле и выделяет их красным цветом;

15) распознать нажатие «горячей» комбинации клавиш LeftCtrl+RightShift+F3 и реагировать на него звуковым сигналом;

16) реализовать видеоэффект – «опадание» букв с экрана;

17) выделять английские символы в словах текстового файла зеленым фоном;

18) прочитать текущее время, прибавить к нему заданный интервал (например, 5 сек.) и установить будильник на полученное время;

19) динамически выделять блок памяти объемом 64 Кбайт. Выделенный блок заполнять символьной информацией и переписывать в файл;

20) выводить на экран информацию о числе и типе имеющихся дисковых накопителей;

21) выводить на экран информацию о числе и типе имеющихся адаптеров дисплея;

22) генерировать и выводить на экран случайные числа с помощью системного таймера;

23) моделировать звук сирены, который прекращается при нажатии любой клавиши на клавиатуре;

24) выделять цифры в текстовом режиме цветным полем;

25) изменять цвет границы экрана при последовательном нажатии на клавишу F10;

26) выделять миганием цифры в текстовом режиме;

27) выделять подчеркиванием прописные буквы в текстовом режиме;

28) выводить на экран сообщение о размере свободного пространства на дискете;

29) выводить на экран сообщение о наличии спрятанных файлов на дискете;

30) удалять лишние пробелы в текстовом файле;

31) выводить на экран информацию о размере второго файла на дискете;

32) прятать заданный файл на дискете. Имя файла задается в командной строке;

33) восстанавливать удаленный файл на дискете;

34) выводить информацию о текущих координатах курсора в правый верхний угол экрана;

35) выводить на экран в графическом режиме размер и атрибуты заданного файла на дискете. Имя файла задается в командной строке;

36) выводить на экран имена всех подкаталогов на дискете в алфавитном порядке;

37) выводить на стандартное устройство ввода-вывода порядковые номера кластеров заданного файла на дискете. Имя файла вводится с клавиатуры;

38) выводить на экран имена файлов на дискете в порядке увеличения их размера;

39) удалять все файлы с дискеты, если их имена начинаются с заданного символа. Символ вводится с клавиатуры;

40) форматировать дискету на стандартную емкость 1,44 Мб. Формат программы .ЕХЕ. Предусмотреть все необходимые диагностические сообщения;

41) генерировать звуковой сигнал и выводить на экран вашу фамилию при нажатой клавише F10. Программа должна быть резидентной;

42) генерировать звук изменяющейся частоты при нажатии на клавишу «Esc». Процедуру генерации звука оформить в виде макроса;

43) определять количество установленных в системе портов R232;

44) распознавать нажатие LeftCtrl + RightShift + F3 и реагировать на него звуковым сигналом. Оформить в виде программы обработки прерывания от клавиатуры;

45) выводить на стандартное устройство ввода-вывода символы второй половины кодовой таблицы (коды 128 - 255). Установить программируемую задержку вывода очередного символа в 0,5, 1,0 и 5,0 секунд. Задержку задавать параметром командной строки;

46) вычислять омическое сопротивление двух параллельно соединенных резисторов. Значения сопротивлений резисторов в диапазоне 0,1 ом до 1000 Мом вводятся с клавиатуры;

47) переводить заданные десятичные числа в шестнадцатеричную, восьмеричную и двоичную формы. Ввод числа осуществлять с клавиатуры и выход из программы нажатием клавиш Alt + F4;

48) рисовать на экране в графическом режиме 640х400 прямую линию, проходящую через две точки. Значения координат этих точек задаются с клавиатуры.

б) Формат программы:

1) COM - программа;

2) EXE - программа.

в) Ввод с клавиатуры:

1) средствами DOS;

2) средствами BIOS.

г) Вывод на экран:

1) в текстовом режиме;

2) в графическом режиме.

Порядок защиты

 

Защита курсовой работы производится перед комиссией, утверждаемой заведующим кафедрой.

Студент допускается к защите при условии наличия подписанной руководителем и студентом пояснительной записки и расчетно-графической части проекта.

Для защиты студенту отводится 10 – 15 минут на изложение содержания работы; в процессе защиты комиссия высказывает свои замечания; выявленные ошибки проекта должны быть отмечены красным карандашом.

По результатам защиты (доклад, ответы на вопросы, качество проекта) выставляется оценка в ведомости и на титульном листе пояснительной записки. В случае выявления принципиальных ошибок проект возвращается на доработку.

После защиты студент должен сдать пояснительную записку руководителю проекта.

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

При отсутствии достаточного материала по проекту в контрольные сроки, студенту, как правило, выдается новое задание.

 

Список литературы

1. Положение о курсовом проектировании. – Уфа: УГАТУ, 2006. – 14 с.

2. Абель П. Ассемблер. Язык и программирование для IBM PC / Пер. с англ. – К.: Век+, М.: ЭНТРОП, 2005. – 736 с.

3. Рудольф М. Ассемблер на примерах. Базовый курс  – М.: Наука и техника, 2005. – 240 с.

4. Пильщиков В. Assembler. Программирование на языке Ассемблера IBM PC – М.: Диалог-МИФИ, 2005. – 288 с.

5. Финогенов К. Г. Основы языка Ассемблера. – М.: Радио и связь, 2000. – 288 с.

6. Голубь Н.Г. Искусство программирования на Ассемблере Platinum Edition (3 изд.) – М.: Диасофт-ЮП, 2005. – 832 с.

7. Зубков С.В. Assembler для DOS, Windows и UNIX. – М.: ДМК Пресс; СПб.: Питер, 2004. – 608 с.


Составитель Лянцев Олег Дмитриевич

 

 


НИЗКОУРОВНЕВОЕ

СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ

ДЛЯ IBM PC

 

 

Методические указания

по выполнению курсовой работы

по дисциплине «Системное программное обеспечение»

 

Подписано в печать 12.08.2008. Формат 60х84 1/16.

Бумага офсетная. Печать плоская. Гарнитура Таймс.

Усл. печ. л.1,7. Усл. кр. - отт. 1,7. Уч. -изд. л. 1,6.

Тираж 100 экз. Заказ № .

ГОУ ВПО Уфимский государственный авиационный 

технический университет

Центр оперативной полиграфии УГАТУ

450000, Уфа-центр, ул. К. Маркса, 12

 

НИЗКОУРОВНЕВОЕ

СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ

ДЛЯ IBM PC

 

 

Методические указания

по выполнению курсовой работы

по дисциплине «Системное программное обеспечение»

 

 

УФА 2008

Составитель О.Д. Лянцев

 

УДК 004.45(07)

ББК 32.973-018.2(я7)

 

 

Низкоуровневое системное программирование для IBM PC Методические указания по выполнению курсовой работы по дисциплине «Системное программное обеспечение» / Уфимск. гос. авиац. техн. ун-т; Сост. О.Д. Лянцев. - Уфа, 2008. - 28 с.

 

 

 

Содержатся основные сведения, необходимые для выполнения курсовой работы по дисциплине «Системное программное обеспечение»: о принципах взаимодействия аппаратных и программных средств персонального компьютера IBM PC и о способах программирования основных системных функций. Приведены перечень тем курсовых работ и сведения о содержании основных этапов работ по выполнению курсового проектирования, методика выполнения этих этапов, материалы для оформления и защиты работы.

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

Предназначены для подготовки дипломированных специалистов по направлению 230100 – «Информатика и вычислительная техника» специальности 230102 – «Автоматизированные системы обработки информации и управления».

 

 

Табл.1. Ил.1. Библиогр.: 7 назв.

 

Рецензенты: канд. техн. наук, доц., Н.М. Дубинин, 

                 д-р физ-мат. наук, проф., В.П. Житников

 

© Уфимский государственный авиационный технический

  университет, 2008

 



Содержание

 

 

Введение. 4

1. Задачи курсового проектирования. 4

2. Тематика и содержание курсовых работ. 4

2.1. Ввод информации с клавиатуры терминала. 4

2.2. Вывод текстовой информации на экран терминала. 7

2.3. Вывод графической информации на экран терминала. 11

2.4. Программирование файловой системы MS DOS. 13

2.5. Программирование прерываний. 17

3. Задание к курсовому проектированию.. 20

4. Правила оформления пояснительной записки. 23

5. Правила оформления графического материала. 24

6. Методика курсового проектирования. 25

7. График выполнения курсовой работы.. 25

8. Порядок защиты.. 27

Список литературы.. 28

 



Введение

Настоящие методические указания предназначены для студентов специальности 230102 «Автоматизированные системы обработки информации и управления», выполняющих курсовые работы  по дисциплине «Системное программное обеспечение».

Целью выполнения курсовой работы по дисциплине «Системное программное обеспечение» является формирование у студентов опыта создания прикладных программ на основе низкоуровневых системных функций BIOS и MS DOS.

Назначение указаний – определить цель, тематику, содержание, объем, порядок выполнения работы, направить деятельность студентов по нужному руслу и пояснить основные этапы проектирования. Предлагаемые задания разработаны с использованием типовых методических материалов по курсовому проектированию и специальной литературы по системному программному обеспечению.

Задачи курсовой работы

Задачами курсового проектирования являются:

· закрепление, углубление и обобщение знаний, полученных студентами во время их обучения по дисциплине «Системное программное обеспечение»;

· применение полученных знаний к системному решению типовой задачи по программированию системных функций IBM PC;

·  получение навыков работы со специальной литературой и навыков программирования на ассемблере;

· приобретение опыта аналитической работы и формирование соответствующих умений;

· формирование умений формулировать логически обоснованные предложения, рекомендации и выводы по результатам работы;

· формирование умений выступать перед аудиторией с докладом при защите работы, компетентно отвечать на вопросы, вести дискуссию и убеждать оппонентов в правильности принятых решений [1].

2. Тематика и содержание курсовых работ


Поделиться:



Последнее изменение этой страницы: 2019-05-07; Просмотров: 362; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.1 с.)
Главная | Случайная страница | Обратная связь