Контрольні запитання і задачі
1. Яка команда програми Debug встановлює режим трансляції операторів мови Assembler?
Режим трансляції операторів мови Assembler встановлює команда А адреса першої команди <Enter>.
2. Що означає вислів «трансляція оператора мови Assembler
Цей компілятор вперше використовував мнемонічне (у вигляді команд та відповідних операндів) позначення основних операцій, які здатна виконувати машина, які потім перетворювались на коди, зрозумілі машині. Цей процес був названий трансляцією
3. Запишіть формат команди запуску програми на виконання у середовищі програми Debug, програми TurboDebugger.
Формат команди запуску: Debug <Enter> у середовищі операційної системи MS DOS або Пуск->Выполнить->Debug-> ОК у середовищі операційної системи Windows.
4. Запишіть команду виведення мнемоніки машинних команд у середовищі програми Debug.
U Aдреса першої команди, адреса останньої команди <Enter>
Тема: Оформлення алгоритмів з галуженням.
Мета: Набути початкові навички використання операторів умовного та безумовного переходу для записування розгалужених процесів. Матеріально-технічне оснащення робочого місця.
Завдання для самостійного опрацювання
Записати на Асемблері програму обчислення величини у відповідно до варіантів завдань.
Завдання №1
Тест 1 Тест 2
a=5 a=15
x=5 x=5
b=10 b=7
y=15 y=8
TEST1 TEST2
.MODEL TINY .MODEL TINY
.DATA .DATA
A DW 5 A DW 15
X DW 5 X DW 5
B DW 10 B DW 7
Y DW ? Y DW ?
.CODE .CODE
MOV AX, @DATA MOV AX, @DATA
MOV DS, AX MOV DS, AX
MOV AX, A MOV AX, A
MOV BX, X MOV BX, X
MOV CX, B MOV CX, B
CMP AX, BX CMP AX, BX
JE PLUS JE PLUS
JNE MINUS JNE MINUS
PLUS: ADD AX, CX PLUS: ADD AX, CX
MOV X, AX MOV X, AX
JMP END JMP END
MINUS: SUB AX, CX MINUS: SUB AX, CX
MOV X, AX MOV X, AX
JMP END JMP END
END: Hlt END: Hlt
Завдання №2
Тест 1 Тест 2
x=7
a=53
c=2 x=4
y=2 y=30
TEST1 TEST2
.MODEL TINY .MODEL TINY
.DATA .DATA
A DW 53 A DW 53
X DW 7 X DW 4
C DW 2 C DW 2
Y DW ? Y DW ?
.CODE .CODE
MOV AX, @DATA MOV AX, @DATA
MOV DS, AX MOV DS, AX
MOV AX, X MOV AX, X
MOV BX, A MOV BX, A
MOV CX, C MOV CX, C
CMP X, 6 CMP X, 6
JA DIV JA DIV
JNA MINUS JNA MINUS
DIV: NEG BX DIV: NEG BX
ADD AX, BX ADD AX, BX
IDIV CX IDIV CX
MOV X, AX MOV X, AX
JMP END JMP END
MINUS: SUB BX, CX MINUS: SUB BX, CX
MOV BX, CX MOV BX, CX JMP END JMP END
END: Hlt END: Hlt
Контрольні запитання і задачі
1. З якою метою виконується тестування програми?
Тестування програми – техніка контролю якості, що перевіряє відповідність між реальною і очікуваною поведінкою програми завдяки кінцевому набору тестів, які обираються певним чином.
2. Вкажіть оператор Assembler, який запише у регістр ІР зміщення 140 без перевірки умови.
За допомогою оператора MOV ми заносим в ІР зміщення 140 без перевірки умови:
MOV IP, 140
3. Вкажіть оператор Assembler, який здійснює порівняння вмісту регістрів DX, CX.
CMP – команда процесора для порівняння чисел. Реально вона змінює значення прапорів. Зазвичай після команди CMP використовуються команди умовного переходу. Таким чином, використовуючи послідовно CMP і команди умовного переходу, можна організовувати умовні оператори, цикли і так далі.
4. Що відбувається при виконанні оператора CMP BX, DX?
При виконані команди CMP BX, DX порівнюються два регістра і після цієї команди повинні бути наступні команди, які визначають, що буде відбуватись, якщо один або другий регістр більший/менший/рівний.
5. На основі якої інформації здійснюється умовний перехід в програмах на Assembler?
В командах умовного переходу рішення про примусову передачу управління або продовження звичайного режиму виконання програми приймається в залежності від виконання або невиконання певної умови.
6. Який оператор умовного переходу потрібно використати, щоб здійснити перевірку умови [ax]=[bx]?
CMP AX, BX
JE <перехід на команду/мітку>
Тема: Оформлення алгоритмів циклічного типу.
Мета: Набути початкові навички використання оператора циклу LOOP для записування циклічних процесів.
Варіант №1
Записати на Assembler програму табуляції функції:
на
відрізку
з кроком ∆x
= 1 для y
= 4.
Кратність:
+1
=
5
Адреса |
Вміст |
|
|
|
|
130 |
01 |
131 |
00 |
132 |
09 |
133 |
00 |
134 |
19 |
135 |
00 |
136 |
31 |
137 |
00 |
138 |
51 |
139 |
00 |
MOV CX, 5
MOV BX, 130/139
MOV BP, 1
PRHD: MOV AX, BP
IMUL BP
MOV DX, 4
ADD AX, DX
MOV [BX], AX
ADD BP, 1
ADD BX, 1
LOOP PRHD
hlt
Варіант №3
Записати на Асемблері програму табуляції функції
на
відрізку
з кроком ∆x=2.
Кратність:
+1
=
2
Адреса |
Вміст |
130 |
01 |
131 |
00 |
132 |
09 |
133 |
00 |
134 |
19 |
135 |
00 |
136 |
31 |
137 |
00 |
138 |
51 |
139 |
00 |
MOV CX, 18
MOV BX, 130/139
MOV BP, 4
PRHD: MOV AX, BP
ADD AX, 6
MOV DX
IDIV DX
MOV [BX], AX
ADD BP, 2
ADD BX, 2
LOOP PRHD
hlt
