- •Содержание
- •Введение
- •Варианты заданий:
- •Лабораторная работа №2 Вариантыпример отчетак содержанию
- •Варианты заданий:
- •Лабораторная работа №3 Вариантыпример отчетак содержанию
- •Варианты заданий к лабораторной работе №3
- •Лабораторная работа №4 Вариантыпример отчетак содержанию
- •Варианты заданий лабораторной работы №4
- •41. В прямоугольной матрице обменять первый столбец с последним.
- •Оценка результатов практикик содержанию
- •Рекомендованная литература
- •Отладка программы в среде отладчикаTd к содержанию
- •Разбор внутреннего представления командк содержанию
- •Примеры разбора команд
- •1. Команды с регистровой адресацией
- •2.Команды с прямой адресацией
- •3. Арифметические команды с непосредственной адресацией
- •4. Команда mov с непосредственной адресацией
- •5. Команды с использованием аккумулятора
- •6. Команды условного перехода (с относительной адресацией)
- •7. Команды безусловного перехода (с относительной адресацией)
- •8. Команда вызова подпрограммы (с относительной адресацией)
- •9. Команда завершения цикла (с относительной адресацией)
- •10. Команды с косвенной адресацией
- •Міністерство освіти і науки
- •Пример отчета по лабораторной работе №1к лаб. Раб.№1
- •Пример отчета по лабораторной работе №2к лаб. Раб.№2
- •Пример отчета по лабораторной работе №3к лаб. Раб.№3
- •Пример отчета по лабораторной работе №4к лаб. Раб. №4
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
Донецкий национальный технический университет
Факультет компьютерных наук и технологий
Кафедра компьютерной инженерии
Методические указания и задания
по
вычислительной практике
для студентов направления подготовки «Компьютерная инженерия»
У т в е р д ж е н о
на заседании методической комиссии направления «Компьютерная инженерия»
Протокол 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
Вариантыпример отчетак содержанию
Цель: Ознакомление с особенностями выполнения микропроцессором основных арифметических команд и операторами программирования на языке Ассемблер данных команд. Получение навыков работы в среде отладчика 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):
- байт кода операции;
- пост байт;
- поле определения первого операнда (включая различные способы адресации);
- поле определения второго операнда (включая различные способы адресации).
Рассматриваются только следующие виды адресации: прямая, регистровая и непосредственная.