Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура и система команд процессора 8086 в реальном режиме.doc
Скачиваний:
48
Добавлен:
01.05.2014
Размер:
1.32 Mб
Скачать

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, состояния флагов операции.

Соседние файлы в предмете Системное программное обеспечение