Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskie_ukazania.doc
Скачиваний:
14
Добавлен:
03.03.2016
Размер:
6.75 Mб
Скачать

77

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

Донецкий национальный технический университет

Факультет компьютерных наук и технологий

Кафедра компьютерной инженерии

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

по

вычислительной практике

для студентов направления подготовки «Компьютерная инженерия»

У т в е р д ж е н о

на заседании методической комиссии направления «Компьютерная инженерия»

Протокол N___от «____»____2013 р.

Донецк 2013

УДК 681.3

Методические указания и задания по вычислительной практике для студентов направления подготовки «Компьютерная инженерия» / Составители: Теплинский С.В., Чередникова О.Ю. - Донецк, ДонНТУ, 2013. - 80 с.

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

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

Составители: к.т.н , доцент С.В. Теплинский

к.т.н., асистент О. Ю. Чередникова

Ответственный за выпуск : В.А. Святний, зав. каф., проф.

Содержание

стр.

Введение

4

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

5

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

17

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

24

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

31

Оценка результатов практики

41

Рекомендованная литература

41

Приложение 1

Отладка программы в среде отладчика TD

42

Приложение 2

Разбор внутреннего представления команд

46

Приложение 3

Пример титульного листа отчета по практике

52

Приложение 4

Пример реферата

53

Приложение 5

Пример отчета по лабораторной работе №1

54

Приложение 6

Пример отчета по лабораторной работе №2

58

Приложение 7

Пример отчета по лабораторной работе №3

63

Приложение 8

Пример отчета по лабораторной работе №4

69

Введение

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

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

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

График прохождения практики включает теоретические и лабораторные занятия, а также проведение входного контроля и двух контрольных опросов.

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

Теоретические и лабораторные занятия охватывают следующие темы: структура программы и команд; определение логических и физических адресов переменных и команд; алгоритмы выполнения арифметических команд, команд перехода и сравнения; организация ввода-вывода; работа с одномерными и двумерными массивами.

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

Отчет по практике должен содержать:

  1. Титульный лист

  2. Техническое задание

  3. Реферат

  4. Содержание

  5. Результаты входного контроля

  6. Результаты двух контрольных опросов

  7. Отчеты по сданным лабораторным работам

  8. Выводы

  9. Список использованной литературы.

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

Вариантыпример отчетак содержанию

Цель: Ознакомление с особенностями выполнения микропроцессором основных арифметических команд и операторами программирования на языке Ассемблер данных команд. Получение навыков работы в среде отладчика Turbo Debugger.

Тема: Составление программы на языке Ассемблер для вычисления арифметических выражений.

Этапы выполнения работы:

1. Разработка граф схемы алгоритма последовательности этапов вычисления заданного выражения.

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

Если входные переменные и промежуточные результаты не выходят за границы байта (-128÷127), то объявляем их типом db, иначе – dw.

3. Написание программы для расчета двух формул арифметических выражений на языке ассемблер.

Значения переменных a, b и c, в выражениях задаются в сегменте данных. Результаты расчета выражения записываются в переменные x и y (в данной лабораторной работе результатом деления считается только целая часть). Программа на языке ассемблера должна быть записана в текстовом файле. Стандартное расширение файла с такой программой .asm.

4. Компиляция программы (трансляция программы в объектный код).

Выполняется компилятором tasm.exe, параметром к которому задается исходный файл с программой. Проще всего выполнять эти действия в командной строке (используя команду cmd или в программе Far.exe). Допустим, вы сохранили исходный код программы в файле lab1.asm. Тогда в командной строке нужно прописать:

> tasm lab1.asm /l/zi

Ключ /zi включает в объектный файл полную информацию для отладки программы (для более удобного представления программы в отладчике)

Ключ /l генерирует листинг программы (файл с расширением .lst). В нашем случае это будет файл lab1.lst.

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

В случае успешной трансляции образуется объектный файл lab1.obj, который является основой для получения загрузочного файла (исполнимый вид программы).

5. Создание исполнимого файла.

Выполняется редактором связей tlink.exe, параметром к которому задается ранее полученный объектный файл. Аналогично предыдущему пункту в командной строке нужно прописать:

> tlink lab1.obj /v

Ключ /v включает в исполнимый файл полную символьную информацию (необходим для более наглядного вида программы в отладчике)

В результате выполнения этой команды создается файл с расширением .exe. В нашем случае это будет файл lab1.exe.

6. Проверка работы программы с помощью отладчика td.exe (см. работа с отладчиком).

7. Оформление отчета

Состав отчета по лабораторной работе №1:

1.Титульный лист.

2. Задание к лабораторной работе.

3. Контрольный просчет результатов.

4. Блок-схема программы

5. Листинг программы (файл lab1.lst).

6. Результаты выполнения программы - дамп памяти до и после получения результатов с комментариями поясняющие значения всех элементов дампа.

7. Выводы.

8. Защита лабораторной работы.

Список вопросов к защите лабораторной работы № 1.

1. Алгоритм выполнения программы

2. Структура листинга трансляции с объяснением отдельных составляющих.

3. Структура программы. Назначение сегментов программы. Размер каждого сегмента.

3.1 Директивы описания сегментов программы.

3.2 Директива assume.

3.3 Директива end.

4. Физические и логические адреса переменных программы.

4.1 Рассчитать размер исполняемого файла в параграфах.

4.2 Вычисление физического адреса любых переменных или команд программы (адреса сегментов выбираются из окон отладчика).

Примеры определения физического адреса:

1) определить физический адрес переменной с (для листинга из примера):

Из листинга видим, что смещение переменной с относительно начала сегмента данных 0002. Адрес сегмента данных смотрим в отладчике td: ds=52FD. Тогда физический адрес переменной определяется как 52FD0+0002=52FD2.

2) определить физический адрес команды 0014 8A mov bl,al.

0014 – это смещение команды относительно начала сегмента кода. Адрес сегмента кода смотрим в отладчике td: сs=52FЕ. Тогда физический адрес переменной определяется как 52FЕ0+0014=52FF4.

5. Алгоритмы выполнения команд: операнды команды, формат операндов: байт или слово; расположение операндов в памяти или в регистрах процессора; операнд-константа; запись результата выполнения команды; формирование признаков результата в регистре флагов; возникновение исключительных ситуаций при выполнении команды деления.

5.1 Арифметические команды ADD, SUB, MUL, IMUL, DIV, IDIV, INC, DEC, CBW, CWD;

5.2 Команды пересылки данных MOV.

6.Структура команды. В коде команды надо уметь выделять и объяснять следующие поля (производится разбор внутреннего представления команды - примеры команд 1-5):

- байт кода операции;

- пост байт;

- поле определения первого операнда (включая различные способы адресации);

- поле определения второго операнда (включая различные способы адресации).

Рассматриваются только следующие виды адресации: прямая, регистровая и непосредственная.

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