- •Содержание
- •Введение
- •Варианты заданий:
- •Лабораторная работа №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 |
|

A
+ B, если
A /B < 0
(A
B)2,
если
A + |B| < 0
|A
B|, если
A
B^2 < 0
B2,
если
B
A+2 < 1
A/B2,
если
A
B < 0
|A
+ B|/4, если
A2-
1< 15
(A
+ B)
2,
если
2+AB
< 0
B
|A3|,
если
B
3/A < 3
7/A
+ B, если
A < 3
19A
, если
1 - A < 11
|AB|,
если
AB
^2< 0
B2,
если
BA+2
< 1
(5+A)/B,
если
B+1 < 5
|B+3|
A,
если
B+A^2 < 7
(2+
B) A,
если
A+B+10 < 13
36-AB,
если
B < 2
36-AB,
если
A+B3
<40
(A+B)/A,
если
B/A-4 < 15
A+3,
если
|B3|
<10
7,
если
B - A < 0
3A+5B,
если
|A-B| < 1
A-8B-3,
если
4B-|A|
<4
(A+B)/10,
если
A|B|
<10
9/A+7,
если
B < A
AB/5,
если
A/B^2 < 2
65-A-B/5,
если
B/3 < 2A
B2+A3,
если
9B-5A
< 4
3A/7+B/3,
если
B/A < 3
18,
если
3A^2
-8 < 0
|A||B|+12,
если
AB3
<60
50-13B)/2A,
если
|A|-3 < 5
40/AB+22,
если
A-3 < B/6
|AB|-4A,
если
B-A+16 <20
|AB|-10,
если
A-B < 0
A/|B-4A|,
если
B - 3 < A/2
(15+A)/(2+B),
если
B+A-7<AB
7B,
если
B/4 <-11
(A-12+B)2,
если
A < -2
B+3/A-19,
если
A < 0
A-5B+3,
если
B +|A| < -4
4B
-2A,
если
B < 4
|A-2B|,
если 3B
< 4
B3
-A, если
A-B < 10
B+7-A/2,
если
A2
<
B
B5+18,
если
B/4 < 2
29-B,
если
B < 0
(A-5B)/A,
если
B2-A
< 4
11/B+A/12,
если
A+8B+A<53
(A/B-5)
2,
если
AB-4
< 0
A4-8/B,
если
A/B-13 < 6
|2B+A|/12,
если
|A| -|B| < 5
B3+12-A2,
если
A < B
B2-8A,
если
A+16 < 20
15/(A-3B),
если
A+B < 5
50-A-B,
если
A+2 < B4
|B-5|+4A,
если
A-12 < AB
A-12/B,
если
B-A < 1
(A+B)6,
если
A/5 < 1
A+B+40,
если
B2
< 9
B/A+3A/B,
если
|BA|
< 4
61.
AB
- 4, если
A-14 < B
|
A - B|, если
A – B^2 < 0
B^2,
если
B – A < 1
(5+A)/B,
если
B + 5 < A
|
B+3|*A, если
B+A^2 < 7
(2+B)+A,
если
A+B+10 < 1
6
–A-B, если
B < 2
36-A-B,
если
A –B*3 < 4
(A+B)/A,
если
B/A– 4 < 15
A+3,
если
|B*3| < 10
-76,
если
B-A < 0
A-3*B+4,
если
|B*A| < 18
|B|*A+5,
если
|B+A| < 3
50+B,
если
A*4+B < 3
6*A+B,
если
A/10 < 3
A+B,
если
B*5 < 20
17-B*A,
если
(B-A)/5 < 15
A*B-A,
если
A-1 < 7
7-B,
если
(B-A)+15 < 0
A-3*B+2,
если
|B*A-1| < 99
A/(B+5),
если
|B-A| < 30
-10,
если
A*4+B/3 < 2
6*A-B/2,
если
A/6+6 < 3
A+B+4,
если
A/B < 2
(A-B)^2,
если
A+|B| < 5
|A-B*2|,
если
A-B^2 < 0
B^2-A,
если
B–A+5 < 1
A/B,
если
A*2-B < 0
|A+B|/4,
если
A/2-1 < 15
(A+B)/3,
если
A/B+2 < 4
B-|A^3|,
если
B-3/A < 3
7/A+B,
если
A+3*B < 2
19-A,
если
1-A < 11+B
|A+B|,
если
A+B^2 < 4
B^2+A,
если
B-A+2 < 10
(510-A)/B,
если
B+3 < 50
|B*3|*A,
если
B+A < 7
(2+B)+A,
если
A+B+10 < 12
36-A-B,
если
B < A+5
36-A-B,
если
A+B*3 < 40