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