Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Варианты пример отчета к содержанию
Цель: Ознакомление с особенностями выполнения микропроцессором основных арифметических команд и операторами программирования на языке Ассемблер данных команд. Получение навыков работы в среде отладчика 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):
- байт кода операции;
- пост байт;
- поле определения первого операнда (включая различные способы адресации);
- поле определения второго операнда (включая различные способы адресации).
Рассматриваются только следующие виды адресации: прямая, регистровая и непосредственная.
Варианты заданий:
1) a=11 b=2 c=21
2) a=3 b=2 c= -3
x=24 y=-21
3) a=7 b=4 c=-5
x=-9 y=2
4) a=4 b=7 c=5
x=3 y=-2
5) a=5 b=3 c=-3
x=24 y=27
6) a=2 b=7 c=-3
x=-10 y=-6
7) a=6 b=-2 c=3
x=-7 y=3
8) a=-13 b=8 c=-128
x=67 y=-2
9) a=-11 b=0 c=-9
x=5 y=10
10) a=-1 b=-2 c=32
x=-132 y=-53
11) a=3 b=7 c=2
x=2 y=-3
12) a=6 b=61 c=31
x=-11 y=-932
13) a=6 b=-4 c=3
x=10 y=-1
14) a=-12 b=9 c=0
x=42 y=10
15) a=124 b=67 c=2
x=-5125 y=-153
16) a=6 b=-4 c=6
x=-38 y=-2
17) a=-6 b=7 c=-13
x=-3 y=-9
17) a=21 b=2 c=35
x=-13 y=-1
18) a=6 b=4 c=11
x=-4 y=13
19) a=7 b=-9 c=-10
x=-5 y=7
20) a=6 b=7 c=3
x=-2 y=1473
21) a=-51 b=26 c=36
x=66 y=14
22) a=-3 b=2 c=5
x=54 y=-1
23) a=4 b=3 c=13
x=4 y=34
24) a=22 b=-2 c=3
x=-2 y=-3
25) a=4 b=2 c=3
x=50 y=7
26) a=3 b=2 c=-3
x=1 y=-112
27) a=-1 b=-2 c=32
x=-132 y=-56
28) a=7 b=-23 c=6
x=6 y=0
29) a=4 b=3 c=-4
x=95 y=0
30) a=2 b=3 c= -1
x=-5 y=-26
31) a=-6 b=5 c=4
x=-2 y=3
32) a=2 b=17 c=15
x=-10 y=-9
33) a=15 b=3 c=-7
x=38 y=1
34) a=2 b=7 c=-3
x=2 y=12
35) a=8 b=-2 c=1
x=-6 y=-6
36) a=-3 b=18 c=-12
x=-5 y=-1
37) a=-5 b=-1 c=0
x=-2 y=1
38) a=-10 b=-5 c=31
x=-84 y=-27
39) a=4 b=6 c=3
x=16 y=-1
40) a=-2 b=8 c=3
x=-2 y=-3
41) a=-7 b=3 c=10
x=2 y=-1
42)a=7 b=-3 c=2
x=23 y=-3
43) a=-2 b=6 c=0
x=3 y=3
44) a=14 b=7 c=23
x=11 y=9
45) a=7 b=-14 c=16
x=-1 y=-1
46) a=-16 b=71 c=-1
x=-10 y=-4
47) a=2 b=-12 c=-21
x=2 y=-4
48) a=16 b=3 c=10
x=1 y=1
49) a=17 b=-5 c=-1
x=3.5 y=1
50) a=6 b=3 c=-2
x=-1 y=-95
51) a=-5 b=6 c=3
x=-1 y=16
52) a=-2 b=1 c=2
x=4 y=-12
53) a=3 b=4 c=-5
x=44 y=3
54) a=2 b=-2 c=3
x=-11 y=78
55) a=4 b=3 c=2
x=16 y=1
56) a=1 b=-2 c=-3
x=1 y=11
57) a=-1 b=-2 c=3
x=-6 y=26
58) a=2 b=-3 c=6
x=-6 y=2
59) a=4 b=3 c=-1
x=-2 y=-1
60) a=8 b=4 c= -2
x=- 38 y=-10
61) a=-2 b=5 c=4
x=-15 y=166
62) a=3 b=1 c=5
x=-40 y=9147
63) a=15 b=3 c=-5
x=-1 y=1
64) a=2 b=7 c=-3
x=5 y=10
65) a=5 b=-2 c=1
x=0 y=-30
66) a=-3 b=1 c=-1
x=-2 y=-3
67) a=-5 b=-1 c=5
x=-16 y=1
68) a=-6 b=5 c=3
x=-3 y=16
69) a=2 b=1 c=5
x=4 y=-3
70) a=1 b=3 c=-7
x=148 y=-118
-
71) a=-2 b=8 c=3
x=-28 y=4
72) a=-2 b=8 c=3
x=-2 y=-3
73) a=-1 b=-13 c=5
x=-4 y=-1
74) a=17 b=-13 c=2
x=-3 y=-1
75) a=-20 b=2 c=1
x=3 y=-2
76) a=1 b=7 c=-3
x=6 y=-3
77) a=7 b=-1 c=6
x=-2 y=-2
78) a=-6 b=7 c=-1
x=-2 y=6
79) a=2 b=-2 c=-21
x=1 y=-10
80) a=16 b=3 c=10
x=3 y=-10
81) a=1 b=-5 c=-1
x=-25 y=38
82)a=5 b=2 c=-1
x=-1 y=11
83) a=-8 b=3 c=1
x=2 y=4
84) a=-21 b=11 c=2
x=6 y=-4
85) a=6 b=7 c=-8
x=3574 y=-7
86) a=1 b=-2 c=3
x=2 y=2
87) a=4 b=3 c=0
x=48 y=-103
88) a=10 b=-12 c=-13
x=-5 y=10
89) a=-4 b=-7 c=11
x=-10 y=-4
90) a=5 b=-6 c=7
x=-10 y=-4
91) a=1 b=4 c=-2
x=5 y=-1
92) a=18 b=4 c= -12
x=22 y=141
93) a=-1 b=3 c=2
x=-4 y=3
94) a=2 b=1 c=4
x=2 y=6
95) a=5 b=3 c=-1
x=1 y=9
96) a=12 b=5 c=-4
x=1 y=1
97) a=5 b=-2 c=-7
x=-1 y=-10
98) a=-2 b=1 c=-10
x=-24 y=-3
99) a=-6 b=-2 c=3
x=-11 y=1
100) a=-2 b=3 c=5
x=1 y=1
Дата публикования: 2015-04-10; Прочитано: 290 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!