
Министерство образования Республики Беларусь
Учреждение образования «Витебский государственный политехнический колледж»
УТВЕРЖДАЮ
Зам. директора по учебной работе
____________ З.В. Блажевич
« ___ » ____________ 20__ г.
Микропроцессорная техника
Лабораторная работа № 5
Система команд CPU i8086. Арифметические команды. Влияние на флаги.
по специальности 2-40 01 01
«Программное обеспечение информационных технологий»
Витебск
2009
Разработана Иваненко Е.С., преподавателем спецдисциплин.
Рассмотрено и одобрено на заседании цикловой комиссии информатики и программирования.
Протокол № __ от « __ » _____________ 20 __ г.
Председатель ЦК ___________ А.С. Шандриков
Лабораторная работа № 5.
Тема: «Система команд CPU Intel 8086. Арифметические команды. Влияние на флаги»
Цель работы:
- Приобрести практические навыки по применению арифметических команд;
- Закрепить навыки по отладке программ с помощью отладчика AFD на языке Ассемблера.
Оборудование:
Методические рекомендации по выполнению работ, ПК, программа-отладчик AFD.
1. Программа работы
1. Повторить теоретический материал по теме «Система команд. Арифметические команды».
2. Исследовать арифметические команды:
Вызвать программу-отладчик AFD.
На запрос “Press any key to continue” нажать любую клавишу.
Вернуть курсор в поле 4, нажав клавишу F8 (дважды). По адресам DS:0010 и DS:0020 записать 0.
Перейти в поле 2, нажав клавишу F7. Ввести команду: D 100 (ввод).
Ввести команду ассемблирования: А (ввод).
Ввести фрагмент программы в соответствии с таблицей 1. Предварительно изменив операнды команд 1 и 2 в соответствии с вариантом.
Таблица 1.
Шаг |
Адрес |
Код команды |
Команда |
Операнды |
Комментарии |
1 |
0100 |
В820000 |
MOV |
AX, 0020 |
AX:=20h |
2 |
0103 |
С606100002 |
MOV |
[10], 02 |
[10]:=2 |
3 |
0108 |
03061000 |
ADD |
AX, [10] |
AX:=AX+[10] |
4 |
010С |
А32000 |
MOV |
[20], AX |
[20]:=AX |
5 |
010F |
СС |
INT3 |
|
Остановка |
Варианты задания
Число, записываемое в |
Вариант |
||||||||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
|
AX |
1F |
A2 |
30 |
B1 |
34 |
90 |
B5 |
2F |
4B |
C3 |
F9 |
5D |
E3 |
87 |
5F |
[0010] |
02 |
04 |
03 |
01 |
10 |
06 |
12 |
07 |
17 |
05 |
13 |
08 |
14 |
09 |
15 |
После ввода фрагмента программы, выйти из режима ассемблирования, нажав Ctrl+Enter.
Ввести D 100 (ввод).
Выполнить фрагмент программы в пошаговом режиме, многократно нажимая клавишу F2, и фиксируя на каждом этапе состояние памяти по относительным адресам DS:0010,DS:0020 и в регистре AX. Результаты занести в таблицу 2.
Изменить команду шага 3 таблицы 1 на следующую из списка 1. Предварительно обнулить регистр AX и ячейки памяти по относительным адресам DS:0010 и DS:0020. Повторить все с пункта 5.
Список 1
ADD AX, [10] |
INC[10] |
DEC [10] |
DIV [10] |
ADD [10], AX |
DEC AX |
MUL AX |
IDIV [10] |
NEG AX |
IMUL [10] |
MUL [10] |
SUB [10], AX |
INC AX |
SUB AX, [10] |
IMUL AX |
DEC AX |
Таблица 2
Результат в |
ADD AX,[10] |
ADD [10],AX |
NEG AX |
INC AX |
INC [10] |
DIV AX |
IMUL [10] |
SUB AX,[10] |
AX |
|
|
|
|
|
|
|
|
0010 |
|
|
|
|
|
|
|
|
0020 |
|
|
|
|
|
|
|
|
SF |
|
|
|
|
|
|
|
|
ZF |
|
|
|
|
|
|
|
|
CF |
|
|
|
|
|
|
|
|
Результат в |
MUL AX |
MUL [10] |
IMUL AX |
DIV [10] |
IDIV [10] |
SUB [10],AX |
DEC AX |
DEC [10] |
AX |
|
|
|
|
|
|
|
|
0010 |
|
|
|
|
|
|
|
|
0020 |
|
|
|
|
|
|
|
|
SF |
|
|
|
|
|
|
|
|
ZF |
|
|
|
|
|
|
|
|
CF |
|
|
|
|
|
|
|
|
Ввести фрагмент программы, составленный в соответствии с вариантом домашнего задания, и выполнить его в пошаговом режиме, фиксируя в графе «комментарии» состояние изменившегося регистра или ячейки памяти.
Содержание отчета:
Название и цель работы.
Фрагмент программы в таблице 1. Таблица 2 с результатами работы.
Фрагмент программы домашнего задания, оформленный в виде таблицы 1 с результатами каждого шага, записанными в графе «комментарии».
Вывод о проделанной работе.