
- •Содержание
- •Введение
- •Варианты заданий:
- •Лабораторная работа №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
Лабораторная работа №2 Вариантыпример отчетак содержанию
Цель: Получение навыков в программировании разветвляющихся алгоритмов.
Тема: Разработка программы вычисления арифметического выражения с использованием условных операторов языка ассемблер
Этапы выполнения работы:
1. Ручной просчет арифметического выражения.
Типы описания переменных определяются следующим образом: если в первой работе Вы использовали переменные размером в байт (db), то теперь описываете переменные размерностью слово (dw) и наоборот.
В данной работе на этом этапе Вы должны самостоятельно подобрать значения переменных и просчитать результат для трех условий выражения, заданного по варианту.
2. Написание программы для расчета формулы на языке ассемблер.
Значения переменных a, b задаются в сегменте данных. Результаты записываются в переменную x (в данной лабораторной работе результатом деления считается также только целая часть). Переменные А, В принять равными значениям, удовлетворяющим одному из условий формулы.
3. Компиляция программы выполняется аналогично лаб. работе №1.
4. Создание исполнимого файла выполняется аналогично лаб. работе №1.
5. Проверка работы программы с помощью отладчика td.exe
Особенностью отладки лаб. работы №2 является возможность отладки всех трех условий выражения, не выходя из отладчика, т.е. не изменяя исходный код программы. Для этого, после загрузки сегментного регистра ds адресом начала Вашего сегмента данных и обеспечением отображения в дампе памяти Вашего сегмента данных, можно поставить курсор на то значение байта, которое Вы желаете изменить, и ввести новое значение. На экране отобразится окно, показанное на рис. 7 и после подтверждения ввода значение байта в памяти изменится (например так, чтобы оно соответствовало другому условию формулы). После этого процесс отладки программы будет продолжен с новыми значениями.
Рисунок 7 – Изменение данных памяти в отладчике td.exe
6.Оформление отчета.
В отчет по второй лабораторной работе включаются:
- титульный лист;
- задание;
- контрольный просчет результатов;
- блок-схема;
- листинг программы;
- результаты выполнения программы для трех ветвей.
7. Защита работы.
Вопросы для защиты второй лабораторной работы
Во второй лабораторной работе используются команды CMP, JMP и
команды условных переходов. Эти команды и подлежат разбору. Надо
знать алгоритмы выполнения команд, используемые способы адресации
и флаги. В командах переходов используется относительная адресация.
При защите отчета для одной из команд JMP и одной команды условного
перехода надо вычислить адрес перехода.
В командах условного перехода флаги анализируются для выполнения
перехода, надо пояснить, как связано название команды с комбинацией
проверяемых флагов.
Варианты заданий:
1. y = A B2, если A /B = 0 10 + B, если A /B > 0 |
2. y = 5A + B2, если A + |B| = 0 30/A2B, если A + |B| > 0 |
3. y = (B–A)2, если A B^2 = 0 10, если A B^2 > 0 |
4. y = 5A + B2, если B A+2 = 1 30/A2B, если B A+2 > 1 |
5. y = 5A + B2, если A B = 0 30/A2B, если A B > 0 |
6. y = 5A + B2, если A2- 1= 15 30/A2B, если A2 - 1> 15 |
7. y = AB , если 2+AB = 0 |A| + B3, если 2+AB > 0 |
8. y = 33, если B 3/A = 3 30/A2B, если B 3/A > 3 |
9. y = B/(|A| + 1), если A = 3 2B A , если A > 3 |
10. y = (B2)/A, если 1 - A = 11 5AB, если 1 - A > 11 |
11. y = (BA) 3, если AB ^2= 0 10, если AB ^2> 0 |
12. y = 5A + B2, если BA+2 = 1 30/A2B, если BA+2 > 1 |
13. y = A+B+1, если B+1 = 5 (BA)/3, если B+1 > 5 |
14. y = A2- 12, если B+A^2 = 7 B/(A+10), если B+A^2 > 7 |
15. y = 15AB, если A+B+10 = 13 (A +2)/(B+9), если A+B+10 > 13 |
16. y = AB, если B = 2 B-11, если B > 2 |
17. y = A/B-18, если A+B3 =40 47, если A+B3 >40
|
18. y = B^3/(A-11), если B/A-4 = 15 A3+B, если B/A-4 > 15 |
19. y = 21, если |B3| = 10 BA2, если |B3| > 10
|
20. y = 50 - AB, если B - A = 0 A4 - B, если B - A > 0 |
21. y = A2- B2, если |A-B| = 1 7AB, если |A-B| > 1 |
22. y = A/B-18, если 4B-|A| =4 47, если 4B-|A| >4 |
23. y = 5/A+B^3, если A|B| =10 2A-B, если A|B| >10 |
24. y = A/B-18, если B =A 47, если A > B |
25. y = |B-A|, если A/B^2 = 2 47, если A/B^2 > 2 |
26. y = |B| - A2, если B/3 = 2A 47, если B/3 > 2A |
27. y = A - 12, если 9B-5A = 4 |A|-3|B|, если 9B-5A > 4 |
28. y = 25-A+3B, если B/A = 3 14-|B|, если B/A > 3 |
29. y = (8B-A)2, если 3A^2 -8 = 0 |4A3/B2|-12, если 3A^2 -8 > 0 |
30. y = 35-3B, если AB3 =60 A+4B-12, если AB3 >60 |
31. y = A(5 - |B|), если |A|-3 = 5 A-B+1, если |A|-3 > 5 |
32. y = |12-BA|+3B, если A-3 = B/6 A/B2, если A-3 > B/6 |
33. y = -24, если B-A+16 =20 B-A2, eсли B-A+16 >20 |
34. y = (A-B)12, если A-B = 0 (14-A)/B, если A-B > 0 |
35. y = 17 - B/A, если B - 3 = A/2 A3, если B - 3 > A/2
|
36. y = 14, если B+A-7=AB (BA-3)/|A| , если B+A-7>AB |
37. y = (6A-3)(B+14), если B/4 =-11 B2-15, если B/4 >-11
|
38. y = |A3|-B2-25, если A = -2 20, если A > -2 |
39. y = 5B2, если A = 0 (A-4)/B+3, если A > 0
|
40. y = (B+A)/(3+|A|), если B +|A| = -4 12-A, если B +|A| > -4 |
41. y = AB-3, если B = 4 17, если B > 4 |
42. y = A/B-18, если 3B = 4 47, если 3B > 4 |
43. y = (A-10) B, если A-B = 10 A/(3A-B), если A-B > 10 |
44. y = (A-B)2-30, если A2 = B 18/AB, если A2 > B |
45. y = B-|A+2|, если B/4 = 2 (AB+16)/2, если B/4 > 2 |
46. y = A2+8, если B = 0 |A+B6|-8AB, если B > 0 |
47. y = 40-AB если B2-A = 4 |3A|-b2, если B2-A > 4 |
48. y = 48-AB+A, eсли A+8B+A=53 14, если A+8B+A>53 |
49. y = |B -10|A, если AB-4 = 0 B2+3A, если AB-4 > 0 |
50. y = |A2- B/2+4|, если A/B-13 = 6 A-B-12, если A/B-13 > 6 |
51. y = A3-25, если |A| -|B| = 5 BA/3, если |A| -|B| > 5 |
52. y = B-|A+2|, если A = B (AB+16)/2, если A > B |
53. y = |B+A|3A, если A+16 = 20 (AB+16)/2, если A+16 > 20 |
54. y = B-12, если A+B = 5 (AB+16)/2, если A+B > 5 |
55. y = 6A-B2. если A+2 = B4 48, если A+2 > B4 |
56. y = 18-AB, если A-12 = AB (A+14)(B-10), если A-12 > AB |
57. y = |A+4B2|-128, если B-A = 1 (B5A+13, если B-A > 1 |
58. y = |B3+25|-A4, если A/5 = 1 56, если A/5 > 1 |
59. y = |B -A| + 28, если B2 = 9 A3 -12B, если B2 > 9 |
60. y = |A||B|, если |BA| = 4 13/B, если |BA| > 4 |
y = (14-B) A, если A-14 = B 16, если A-14 > B | |
62. y = (B – A)^3, если A – B^2 = 0 10 + B, если A – B^2 > 0 |
63. y = 5A +B^2, если B – A = 1 30/A^2-B, если B – A > 1 |
64. y = A + B + 1, если B + 5 = A B*A/3, если B + 5 > A |
65. y = A^2 -12, если B+A^2 = 7 B/(A+10), если B+A^2 < 7 |
66. y = 15*A*B , если A+B+10 = 1 (A+2)/(B+9), если A+B+10 > 1 |
67. y = A^2 + 6, если B = 2 B-11, если B > 2 |
68. y = A/B-18, если A –B*3 = 4 47, если A –B*3 > 4 |
69. y = B^3/(A-11), если B/A– 4 = 15 A+B, если B/A– 4 > 15 |
70. y = 121, если |B*3| = 10 |B*A|, если |B*3| > 10 |
71. y = -50-A*B, если B-A = 0 A*4-B, если B-A > 0 |
72. y = A-B/2, если |B*A| = 18 B*| A^3|, если |B*A| > 18 |
73. y = B/|A|, если |B+A| = 3 B/(A+10)|, если |B+A| > 3 |
74. y = A*|B|, если A*4+B = 3 B + A/4, если A*4+B > 3 |
75. y = |B|-A*B, если A/10 = 3 1+A-B, если A/10 > 3 |
76. y = |A*B|, если B*5 = 20 B^2, если B*5 > 20 |
77. y = |A+3|^2, если (B-A)/5 = 15 B-7/A, если (B-A)/5 > 15 |
78. y = A*|B*2|, если A-1 = 7 B*2, если A-1 > 7
|
79. y = 5-A/B, если (B-A) +15= 0 A*8+B, если (B-A)+15 > 0 |
80. y = A-B/3+1, если |B*A-1| = 99 B-|A^2|, если |B*A-1| > 99
|
81. y = B/|A+3|, если |B-A| = 30 A/(A-10), если |B-A| > 30 |
82. y = A*|B|, если A*4+B/3 = 2 B + A/4, если A*4+B/3 > 2 |
83. y = |B|-A*B, если A/6+6 = 3 -31/A, если A/6+6 > 3 |
84. y = A-B, если A/B = 2 A*B-5, если A/B > 2 |
85. y = 5*A+A^2, если A+|B| = 5 30/A^2-4*B, если A+|B| > 5 |
86. y = (B/2)^3 если A-B^2 = 0 -16, если A-B^2 > 0 |
87. y = A+B^2, если B–A+5 = 1 300/A^2-|B|, если B–A+5 > 1 |
88. y = A/B*3+A, если A*2-B = 0 B-A, если A*2-B > 0 |
89. y = B^2+4, если A/2-1 = 15 B/(A+3), если A/2-1 > 15 |
90. y = A-B, если A/B+2 = 4 |A|+B, если A/B+2 > 4 |
91. y = -103/A, если B-3/A = 3 B/(A+3), если B-3/A > 3 |
92. y = B/(|A| +5, если A+3*B = 2 B-A, если A+3*B > 2 |
93. y = (B^2)/(A-B), если 1-A = 11+B 5-B*A, если 1-A > 11+B |
94. y = (B-A)*5, если A+B^2 = 4 10*A если A+B^2 > 4 |
95. y = 50+B^2 , если B-A+2 = 10 10*|A|^2-B если B-A+2 > 10 |
96. y = A+B+1, если B+3 = 50 (B*A)/3, если B+3 > 50 |
97. y = A-12, если B+A = 7 B/(A+10), если B+A > 7 |
98. y = 15*A*B, если A+B+10 = 12 (|A+2)/(B+9), если A+B+10 > 12 |
99. y = A+B+9, если B = A+5 B-11/A, если B > A+5 |
100. y = A/B-1, если A+B*3 = 40 4-B/A, если A+B*3 > 40 |
|