Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Konyuhova_progr_ustr_Assembler

.pdf
Скачиваний:
14
Добавлен:
12.03.2016
Размер:
676.71 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ - УЧЕБНО-НАУЧНО- ПРОИЗВОДСТВЕННЫЙ КОМПЛЕКС» УЧЕБНО-НАУЧНО-ИССЛЕДОВАТЕЛЬСКИЙ

ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Кафедра «Информационные системы»

О.В. Конюхова

ПРОГРАММИРОВАНИЕ УСТРОЙСТВ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ НА ЯЗЫКЕ АССЕМБЛЕРА

Методические указания по проведению практических занятий

Дисциплина – «Архитектура вычислительных систем» Направление – 231000.62 «Программная инженерия»

Допущено ФГБОУ ВПО «Госуниверситет - УНПК» для использования в учебном процессе в качестве методических указаний для высшего профессионального образования

Орел 2013

Автор: канд. техн. наук, доц. каф. ИС

О.В. Конюхова

Рецензент: канд. техн. наук, доц. каф. ИС

А.П. Гордиенко

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

Предназначены студентам очной формы обучения, обучающимся по направлению 231000.62 «Программная инженерия», изучающим дисциплину «Архитектура вычислительных систем», по направлению 230700.62 «Прикладная информатика», изучающим дисциплину «Вычислительные системы, сети и телекоммуникации», по направлению 230100.62 «Информатика и вычислительная техника», изучающим дисциплину «ЭВМ и периферийные устройства».

Редактор Э.А. Кравцова Технический редактор О.В. Амелина

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Государственный университет - учебно-научно- производственный комплекс»

Подписано к печати 23.05.2013 г. Формат 60x90 1/16. Усл. печ. л. 3,9. Тираж 31 экз.

Заказ №________

Отпечатано с готового оригинал-макета на полиграфической базе ФГБОУ ВПО «Госуниверситет - УНПК»,

302030, г. Орел, ул. Московская, 65.

© ФГБОУ ВПО «Госуниверситет - УНПК», 2013

2

 

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ .....................................................................................................

6

1 ИСПОЛЬЗУЕМОЕ ОБОРУДОВАНИЕ И ПРОГРАММНОЕ

 

ОБЕСПЕЧЕНИЕ .............................................................................................

6

2 ОБЩАЯ ПОДГОТОВКА К ВЫПОЛНЕНИЮ ПРАКТИЧЕСКИХ

 

ЗАДАНИЙ .......................................................................................................

6

3 ОБЩИЙ ХОД ВЫПОЛНЕНИЯ ПРАКТИЧЕСКИХ ЗАДАНИЙ ...........

7

4 ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ ПО

 

ПРОГРАММИРОВАНИЮ УСТРОЙСТВ ПЕРСОНАЛЬНЫХ

 

КОМПЬЮТЕРОВ НА ЯЗЫКЕ АССЕМБЛЕРА..........................................

7

4.1

ПРЕРЫВАНИЯ И МЕХАНИЗМ ИХ ОБРАБОТКИ ..............................................

7

4.2

ОРГАНИЗАЦИЯ РАБОТЫ С ФАЙЛАМИ .......................................................

10

4.2.1 Управление дисками и каталогами ...................................................

11

4.2.2 Подготовка файлов к операциям чтения/ записи.............................

14

4.2.3 Чтение, запись, позиционирование в файле .....................................

19

4.2.3 Организация поиска файлов...............................................................

23

4.3

УПРАВЛЕНИЕ КЛАВИАТУРОЙ ...................................................................

24

4.4

УПРАВЛЕНИЕ ВЫВОДОМ ИНФОРМАЦИИ НА ДИСПЛЕЙ ............................

30

4.4.1 Вывод символов на экран в текстовом режиме ...............................

31

4.4.2 Управление курсором .........................................................................

34

4.4.3 Вывод точечной графики....................................................................

35

4.5

УПРАВЛЕНИЕ ТАЙМЕРОМ .........................................................................

36

4.5.1 Работа со счѐтчиком времени суток..................................................

37

4.5.2 Генерация звука ...................................................................................

38

4.6

УПРАВЛЕНИЕ ПРЕРЫВАНИЯМИ. НАПИСАНИЕ СОБСТВЕННОГО

 

ПРЕРЫВАНИЯ. .................................................................................................

39

4.7

УПРАВЛЕНИЕ «МЫШЬЮ» .........................................................................

40

5 ПРОЦЕСС АССЕМБЛИРОВАНИЯ И ВЫПОЛНЕНИЯ

 

ПРОГРАММЫ ..............................................................................................

43

5.1

ПОЛУЧЕНИЕ ИСПОЛНЯЕМОГО МОДУЛЯ ...................................................

43

5.2

РАБОТА С ОТЛАДЧИКОМ ПРОГРАММ TURBO DEBUGGER ....

45

6 ПРОГРАММА НА ЯЗЫКЕ АССЕМБЛЕРА ..........................................

47

6.1

СТРУКТУРА ПРОГРАММЫ .........................................................................

47

6.2

ПРИМЕРЫ ПРОГРАММ ...............................................................................

47

7 ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 1. УПРАВЛЕНИЕ ДИСПЛЕЕМ.

 

ВЫВОД СИМВОЛОВ ASCII НА ЭКРАН.................................................

49

7.1

ЦЕЛЬ ПРАКТИЧЕСКОГО ЗАНЯТИЯ .............................................................

49

 

3

 

7.2

КОНТРОЛЬНЫЕ ВОПРОСЫ .........................................................................

50

7.3

ПРАКТИЧЕСКОЕ ЗАДАНИЕ ........................................................................

50

8 ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 2. УПРАВЛЕНИЕ ДИСПЛЕЕМ

 

В ГРАФИЧЕСКОМ РЕЖИМЕ....................................................................

50

8.1

ЦЕЛЬ ПРАКТИЧЕСКОГО ЗАНЯТИЯ .............................................................

50

8.2

КОНТРОЛЬНЫЕ ВОПРОСЫ .........................................................................

50

8.3

ПРАКТИЧЕСКОЕ ЗАДАНИЕ ........................................................................

51

9 ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 3. УПРАВЛЕНИЕ КЛАВИАТУРОЙ.

 

ПРОВЕРКА СИМВОЛА В БУФЕРЕ КЛАВИАТУРЫ.............................

51

9.1

ЦЕЛЬ ПРАКТИЧЕСКОГО ЗАНЯТИЯ .............................................................

51

9.2

КОНТРОЛЬНЫЕ ВОПРОСЫ .........................................................................

51

9.3

ПРАКТИЧЕСКОЕ ЗАДАНИЕ ........................................................................

51

10 ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 4. УПРАВЛЕНИЕ КЛАВИАТУРОЙ.

ВВОД СТРОКИ СИМВОЛОВ ....................................................................

52

10.1

ЦЕЛЬ ПРАКТИЧЕСКОГО ЗАНЯТИЯ ...........................................................

52

10.2

КОНТРОЛЬНЫЕ ВОПРОСЫ .......................................................................

52

10.3

ПРАКТИЧЕСКОЕ ЗАДАНИЕ ......................................................................

52

11 ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 5. ФАЙЛЫ

 

ПОСЛЕДОВАТЕЛЬНОГО ДОСТУПА. ЗАПИСЬ И ЧТЕНИЕ

 

ИНФОРМАЦИИ ...........................................................................................

53

11.1

ЦЕЛЬ ПРАКТИЧЕСКОГО ЗАНЯТИЯ ...........................................................

53

11.2

КОНТРОЛЬНЫЕ ВОПРОСЫ .......................................................................

53

11.3

ПРАКТИЧЕСКОЕ ЗАДАНИЕ ......................................................................

53

12 ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 6. ФАЙЛЫ ПРЯМОГО ДОСТУПА.

ЗАПИСЬ И ЧТЕНИЕ ИНФОРМАЦИИ .....................................................

53

12.1

ЦЕЛЬ ПРАКТИЧЕСКОГО ЗАНЯТИЯ ...........................................................

53

12.2

КОНТРОЛЬНЫЕ ВОПРОСЫ .......................................................................

53

11.3

ПРАКТИЧЕСКОЕ ЗАДАНИЕ ......................................................................

54

13 ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 7. УПРАВЛЕНИЕ ДИСКАМИ.

 

ОРГАНИЗАЦИЯ ПОИСКА КАТАЛОГОВ И ФАЙЛОВ.........................

54

13.1

ЦЕЛЬ ПРАКТИЧЕСКОГО ЗАНЯТИЯ ...........................................................

54

13.2

КОНТРОЛЬНЫЕ ВОПРОСЫ .......................................................................

54

13.3

ПРАКТИЧЕСКОЕ ЗАДАНИЕ ......................................................................

54

14 ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 8. УПРАВЛЕНИЕ МЫШЬЮ ........

55

14.1

ЦЕЛЬ ПРАКТИЧЕСКОГО ЗАНЯТИЯ ...........................................................

55

14.2

КОНТРОЛЬНЫЕ ВОПРОСЫ .......................................................................

55

14.3

ПРАКТИЧЕСКОЕ ЗАДАНИЕ ......................................................................

55

 

4

 

15 ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 9. УПРАВЛЕНИЕ

 

ПРЕРЫВАНИЯМИ. НАПИСАНИЕ СОБСТВЕННОГО

 

ПРЕРЫВАНИЯ.............................................................................................

56

15.1

ЦЕЛЬ ПРАКТИЧЕСКОГО ЗАНЯТИЯ ...........................................................

56

15.2

КОНТРОЛЬНЫЕ ВОПРОСЫ .......................................................................

56

15.3

ПРАКТИЧЕСКОЕ ЗАДАНИЕ ......................................................................

56

16 ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 10. УПРАВЛЕНИЕ СЧЁТЧИКОМ

 

ВРЕМЕНИ СУТОК ......................................................................................

56

16.1

ЦЕЛЬ ПРАКТИЧЕСКОГО ЗАНЯТИЯ ...........................................................

56

16.2

КОНТРОЛЬНЫЕ ВОПРОСЫ .......................................................................

56

16.3

ПРАКТИЧЕСКОЕ ЗАДАНИЕ ......................................................................

57

17 ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 11. ГЕНЕРАЦИЯ ЗВУКА ..............

57

17.1

ЦЕЛЬ ПРАКТИЧЕСКОГО ЗАНЯТИЯ ...........................................................

57

17.2

КОНТРОЛЬНЫЕ ВОПРОСЫ .......................................................................

57

17.3

ПРАКТИЧЕСКОЕ ЗАДАНИЕ ......................................................................

57

18 СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ .................................

58

ПРИЛОЖЕНИЕ А. (ОБЯЗАТЕЛЬНОЕ) - ОБРАЗЕЦ ТИТУЛЬНОГО

 

ЛИСТА ОТЧЕТА ПО ПРАКТИЧЕСКОМУ ЗАНЯТИЮ ДЛЯ

 

СТУДЕНТОВ НАПРАВЛЕНИЯ 230700.62...............................................

59

ПРИЛОЖЕНИЕ Б. (ОБЯЗАТЕЛЬНОЕ) - ОБРАЗЕЦ ТИТУЛЬНОГО

 

ЛИСТА ОТЧЕТА ПО ПРАКТИЧЕСКОМУ ЗАНЯТИЮ ДЛЯ

 

СТУДЕНТОВ НАПРАВЛЕНИЯ 231000.62...............................................

60

ПРИЛОЖЕНИЕ В. (ОБЯЗАТЕЛЬНОЕ) - ОБРАЗЕЦ ТИТУЛЬНОГО

 

ЛИСТА ОТЧЕТА ПО ПРАКТИЧЕСКОМУ ЗАНЯТИЮ ДЛЯ

 

СТУДЕНТОВ НАПРАВЛЕНИЯ 230100.62...............................................

61

ПРИЛОЖЕНИЕ Г. (СПРАВОЧНОЕ) - ОПИСАНИЕ НЕКОТОРЫХ

 

ПРЕРЫВАНИЙ ТАБЛИЦЫ ВЕКТОРОВ ПРЕРЫВАНИЙ .....................

62

5

Введение

Современный специалист в области создания программного обеспечения для вычислительной техники и автоматизированных систем должен обладать достаточными знаниями по использованию средств вычислительной техники в организации и управлении процессами разработки программного обеспечения. Низкоуровневое программирование устройств вычислительных систем позволяет четко усвоить принципы работы этих устройств, взаимодействия с вычислительным ядром (процессором и памятью) компьютеров, что позволит более рационально использовать их вычислительную мощность при разработке конкретного вида программного обеспечения, с учѐтом его особенностей.

Целью проведения практических занятий является изучение студентами организации и принципов функционирования устройств ввода-вывода (УВВ) информации, а также приобретение навыков их низкоуровневого программирования на языке ассемблера.

Настоящие методические указания охватывают практические занятия по дисциплинам «Вычислительные системы, сети и телекоммуникации», «Архитектура вычислительных систем», «ЭВМ и периферийные устройства», посвященных низкоуровневому программированию устройств вычислительных систем на языке ассемблера и выполняемых студентами направлений 230700.62 «Прикладная информатика», 231000.62 «Программная инженерия» (третий семестр), 230100.62 «Информатика и вычислительная техника» (первый семестр).

1 Используемое оборудование и программное обеспечение

Для проведения практических занятий требуются IBM совместимый персональный компьютер, операционная система Windows XP и выше, программный пакет ассемблера TASM.

2 Общая подготовка к выполнению практических заданий

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

6

ет уделять особое внимание приведенным примерам и фрагментам программ.

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

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

3 Общий ход выполнения практических заданий

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

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

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

4 Основные теоретические положения по программированию устройств персональных компьютеров на языке ассемблера

4.1 Прерывания и механизм их обработки

Прерывания обеспечивают принудительную передачу управления специальной процедуре - обработчику системных прерываний, ко-

торый выполняет определѐнные действия. После завершения действий обработчик прерывания возвращает управление прерванной

7

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

Прерывания - это изменения в потоке управления, вызванные не самой программой, а какими-то асинхронными событиями, и связанные обычно с процессом ввода-вывода. Прерывания дают возможность осуществлять операции ввода-вывода независимо от процессора. Поскольку быстродействие микропроцессора выше, чем УВВ, то процессор имеет возможность выполнять другие программы или осуществлять другие функции вместо постоянного контроля состояния присоединѐнных к нему периферийных устройств. Когда УВВ требует обслуживания со стороны процессора, оно сообщает ему об этом путѐм формирования соответствующего запроса (сигнала), по которому процессором может быть прервано выполнение текущей программы. Управление прерываниями от УВВ осуществляется контроллером прерываний, который подключѐн к процессору и структурно входит в его состав.

Наличие сигнала прерывания не обязательно должно вызывать прерывание исполняющейся программы, процессор может иметь систему защиты от прерываний: отключение системы прерываний, запрет или маскирование отдельных сигналов прерываний. Программное управление этими средствами позволяет операционной системе регулировать обработку сигналов прерываний. Процессор может обрабатывать прерывания сразу по их приходу, откладывать их обработку на некоторое время, полностью игнорировать. Например, если установлен в единицу флажок трассировки TF, то процессор выполняет одну команду программы, а затем генерирует прерывание типа 1, т.е., программа выполняется по шагам. Если сброшен флаг прерываний IF, то процессор не реагирует на внешние прерывания (за исключением немаскируемых). Для маскирования отдельных видов прерываний используется регистр масок. Управляется командами CLI (запретить прерывания) и STI (разрешить прерывания).

С каждым отдельным типом прерывания или исключением связан идентифицирующий его номер в диапазоне от 0 до 255 и соответствующий обработчик. Исключениям и немаскируемым прерываниям присвоены номера из интервала от 0 до 31, а маскируемым прерываниям – от 32 до 255. Не все из этих значений используются процессо-

8

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

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

1)Установление факта прерывания.

2)Запоминание в стеке состояния прерванного процесса, которое определяется содержимым регистра флагов PSW, счѐтчика команд IP, сегментного регистра CS. При необходимости, также запоминается содержимое регистров, которые будут использоваться процедурой прерывания и, следовательно, изменяться. Некоторые типы исключений и прерываний также помещают в стек код ошибки для того, чтобы диагностировать причину, вызвавшую исключение.

3)Определение адреса процедуры обработки прерывания по номеру прерывания в таблице векторов прерываний и осуществление перехода к этому обработчику путѐм загрузки адреса в регистры CS и IP.

4)Обработка прерывания. Процедура обработки прерывания выполняет свои команды.

5)Восстановление состояния прерванной программы. После успешного выполнения процедуры обработки прерывания при достижении команды IRET (этой командой завершаются обработчики прерываний) из стека восстанавливается старое содержимое сохраненных в нѐм регистров (старое состояние), в т.ч., и адрес возврата – значения регистров CS и IP.

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

9

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

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

4.2 Организация работы с файлами

Язык ассемблера не содержит средств для работы с файлами. При возникновении такой необходимости программа должна включать в себя фрагменты кода, в которых производится обращение к средствам операционной системы (ОС), которые осуществляют взаимодействие с файловой системой. Согласно /1,2/, современному программисту часто приходится сталкиваться с необходимостью программирования под ОС MS DOS. Средства работы с файлами этой ОС в плане совместимости поддерживаются различными реализациями Windows. Можно выделить четыре аспекта работы с файлами из программ на ассемблере:

1)работа с системой файлового ввода-вывода MS DOS, использующей короткие имена;

2)работа с системой файлового ввода-вывода MS DOS, использующей длинные имена файлов (длиной до 255 символов);

3)работа с системой файлового ввода-вывода Win32;

4)использование файлов особого вида, поддерживаемых Win32. В дальнейшем будут рассмотрены основные функции работы с

файлами под управлением MS DOS, использующей короткие имена (до 8 символов). С одной стороны, использование этих функций не требует специальной подготовки и знаний работы под Win32, с дру-

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]