CПб ГЭТУ
Кафедра А и ПУ
ЛАБОРАТОРНАЯ РАБОТА N 1
“Архитектура и система команд
процессора 8086 в реальном режиме”
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
2009
Цель работы:
Изучение архитектуры и системы команд процессора 8086 с использованием отладчика программ AFDRUS.
Содержание работы:
1) Изучение функциональных возможностей отладчика AFDRUS.
2) Изучение операций пересылки данных.
3) Изучение логических операций.
4) Изучение арифметических операций.
5) Изучение команд передачи управления.
Порядок выполнения работы :
1. Изучение функциональных возможностей AFDRUS
- Запустить отладчик AFDRUS
1.1. Исследовать перемещение курсора по полям отладчика, поочередно нажимая функциональные клавиши F7, F8, F9,F10.
1.2. В нижнем правом угловом поле (текстовом поле ) набрать текст “ABCD 1234”, контролировать изменение состояния ячеек памяти в поле 2.
Определить код символа “пробел”.
В поле 2 в ячейках 00, 01, 02, 03 набрать коды 35, 36, 37, 38.
Контролировать изменение содержания текстового поля.
1.3. Изменить области отображения данных в окнах
- в окне 2 установить DS:200;
- в окне 1 установить ES: 200;
1.4. Перевести курсор в левое верхнее угловое поле ( поле регистров )
- записать в регистр BX число 2F4A
- записать в регистр ES число 2000 - контролировать изменение отображения в окне 1, объяснить почему.
1.5. Установить слово флагов FLAGS равным 3453, контролировать изменения состояния флагов. Контролировать изменение отдельных флагов.
1.6. Нажать клавишу F4, изучить описание команд ‘M’ ‘A’ ‘R’ ‘QUIT’ ( выход из ‘HELP’ по F4 )
1.7. Выполнить команды М 1 300 и М 2 200 контролировать изменения содержания окон 1 и 2. Выполнить команду BX=0423, контролировать значение регистра BХ.
2. Изучение команд процессора.
2.1. Команды пересылки данных, методы адресации.
Перевести курсор в поле CMD>, выполнить команду А100, набрать в поле команд ТЕСТ 1
ТЕСТ 1
MOV AX, 02-присваивание ячейки AX значение 02
MOV CX, AX-присваивание ячейки CX значение AX
MOV BX, 200- присваивание ячейки BX значение 200
MOV [BX], 03-коссвенная пересылка (переход в окно 1) ячейки BX присваивается значение 03,побайтовое заполнение
MOV [204], 02- коссвенная пересылка (переход в окно 1), ячейки 204 присваивается значение 02, побайтовое заполнение
MOV [BX+6], 04-коссвенная пересылка (переход в окно 1), ячейки 204, ячейки 206 присваивается значение 04, побайтовое заполнение
MOV AX, BX –присваивание ячейки AX значение BX
JMP 100-возвращаемся в начало теста, прыжок на A100
Объяснить диагностику AFDRUS.
В окне 1 установить область DS:0200 в ячейки <0200>, <0202>, <0204>, <0206> записать значение адреса ячейки. Помнить о порядке адресации байт в памяти.
Выполнить в пошаговом режиме тест 1, начиная с адреса CS:0100 ( пошаговый режим - клавиша F1).
Контролировать значения регистров AX, BX, CX и ячеек в окне 1.
Пошаговое выполение Теста 1
Исходное окно
MOV AX, 02
MOV CX, AX
MOV BX, 200
MOV [BX], 03
MOV [204], 02
MOV [BX+6], 04
MOV AX, BX
JMP 100
2.2. Начиная с адреса cs:0100 набрать текст тест 2.
ТЕСТ 2
LES BX, [202] ; загрузка регистров ES:BX- коссвенная пересылка (переход в окно 1) ячейки 202 присваивается значение BX,побайтовое заполнение
LEA DX, [200] ; загрузка исполнительного адреса- коссвенная пересылка (переход в окно 1) ячейки 200 присваивается значение DX,побайтовое заполнение
LDS BX, [200] ; загрузка регистров DS:BX- коссвенная пересылка (переход в окно 1) ячейки 200 присваивается значение BX,побайтовое заполнение
JMP 100- возвращаемся в начало теста, прыжок на A100
В ячейках окна 1 записать коды
<DS:0200> = 01
<DS:0202> = DS
<DS:0204> = 03
ТЕСТ2 начиная с адреса CS: 100, контролировать содержимое регистров DX, DX, DS, ES.
Пошаговое выполение Теста 2
Исходное окно
LES BX, [202] ; загрузка регистров ES:BX
LEA DX, [200] ; загрузка исполнительного адреса
LDS BX, [200] ; загрузка регистров DS:BX
JMP 100
2.3. Загрузка стека
Начиная с адреса 100 набрать текст
ТЕСТ 3
PUSH BX- значение BX кладется в верхний стэк и значение верхнего стэка записывется в ячейку B(окно № 2)
PUSH CX- значение СX кладется в верхний стэк и значение верхнего стэка записывется в ячейку С(окно № 2)
POP DX- значение DX кладется в верхний стэк и значение верхнего стэка записывется в ячейку D(окно № 2)
POP AX- значение AX кладется в верхний стэк и значение верхнего стэка записывется в ячейку A(окно № 2)
JMP 100- возвращаемся в начало теста, прыжок на A100
Установить AX=1, BX=2, CX=3, DX=4, SP=10, SS=DS. Установите окно 2 памяти так, чтобы можно было наблюдать работу со стеком.
Выполнить тест в пошаговом режиме, контролировать содержимое регистров BX, DX, SP и содержимое ячеек в окне 1.
Пошаговое выполение Теста 3
Исходное окно
PUSH BX
PUSH CX
POP DX
POP AX
JMP 100
2.4. Логические операции.
Набрать ТЕСТ 4 с адреса CS:0100
ТЕСТ 4
AND BX, AX ; логическое умножение- производим операцию логического «И» со значениями ячеек BX и AX(переводим значения в 16-ую систему счисления) , получившееся значение записываем в ячейку BX(возвращаем значение в 2-ичную систему)
OR DX, AX ; логическое сложение - производим операцию логического «ИЛИ» со значениями ячеек DX и AX(переводим значения в 16-ую систему счисления), получившееся значение записываем в ячейку DX (возвращаем значение в 2-ичную систему)
NOT CX ; логическое отрицание - производим операцию логического «ОТРИЦАНИЯ» значение ячейки CX
TEST AX, 01 ; проверка битов - производим операцию логического «И» со значениями ячеек AX и 01 (переводим значения в 16-ую систему счисления ),меняем значение флага в соответствии с полученным результатом
JMP 100- возвращаемся в начало теста, прыжок на A100
Установить
CX=0F0F
BX=FFFF
AX=0002
DX=0004
Выполнить ТЕСТ 4 в пошаговом режиме, контролировать регистры BX, DX, CX, состояния флагов операции.