Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
97
Добавлен:
02.05.2014
Размер:
552.45 Кб
Скачать

Работа №4 способы адресации

Цель работы: изучение способов адресации данных в МП-86 и микропрограммирование команд с различными режимами адресации.

  1. РЕЖИМЫ АДРЕСАЦИИ

Различают следующие режимы адресации:

  • регистровый -данное содержится в регистре AX, BX, CX, DX или ВР;

  • непосредственный - данное длиной 8 или 16 бит является частью команды;

  • прямой -16-битный эффективный адрес ЕА является частью команды.

  • регистровый косвенный - ЕА находится в регистре BX, SI или DI;

  • регистровый относительный. ЕА вычисляется как сумма смещения D8 или D16 и регистра BX, BP, SI или DI;

  • базово-индексный - ЕА вычисляется как сумма базового (ВХ или ВР) и индексного (SI или DI) регистров;

  • относительный базово-индексный - ЕА вычисляется как сумма смещения (D8 или D16) и базово-индексного адреса.

Регистровая и непосредственная адресация уже были рассмотрены. Остальные способы определяются полями второго байта команды mod (если mod11) и r/m в соответствии с таблицей 1. В столбце SR записан используемый сегментный регистр. Особый случай представляет собой комбинация mod=00 и r/m=110 (прямая адресация), когда ЕА=D16 и SR=DS (а не SS, как для остальных столбцов).

В более поздних процессорах Intel кроме вышеописанной 16-разрядной используется также 32-разрядная адресация с возможным использованием дополнительного байта команды SIB (Scale Index Base). Наличие этого байта задается во втором байте значением поля r/m=100b. Байт SIB состоит из 2-битного поля S (масштаб) и 3-битных полей I (индекс) и В (база). Поле S кодирует множитель, на который умножается индекс:

1 (S=00b), 2 (S=01b), 4 (S=10b), 8 (S=11b). В качестве индексных могут использоваться регистры AX (000b), CX (001b), DX (010b), BP (101b), SI (110b), DI (111b). В качестве базовых могут использоваться все выше перечисленные регистры, а также регистр SP (100b).

Режимы адресации для различных комбинаций mod и r/m

Таблица 1

mod

r/m

00

01

10

SR

000

BX+SI

BX+SI+D8

BX+SI+D16

DS

001

BX+DI

BX+DI+D8

BX+DI+D16

DS

010

BP+SI

BP+SI+D8

BP+SI+D16

SS

011

BP+DI

BP+DI+D8

BP+DI+D16

SS

100

SI

SI+D8

SI+D16

DS

101

DI

DI+D8

DI+D16

DS

110

D16

BP+D8

BP+D16

DS (SS при mod=00)

111

BX

BX+D8

BX+D16

DS

В лабораторных работах 32-битная адресация не предусмотрена, но байт SIB может быть использован и при 16-битной адресации. Для этого байт SIB должен быть извлечен из памяти и помещен во второй байт RGK.

  1. МИКРОПРОГРАММИРОВАНИЕ ФОРМИРОВАНИЯ АДРЕСОВ

Процедуры формирования адресов для режимов, используемых в программе, целесообразно оформить в виде подпрограмм, чтобы не дублировать их для всех команд с одинаковыми способами адресации. Также имеет смысл оформить в виде вложенных подпрограмм выборку смещений D8 и D16.

Рассмотрим последовательность формирования адреса для случая mod=10 и r/m=010 (относительный базово-индексный режим), предполагая, что смещение D16 выравнено по границе слова (IP четно).

Микропрограмма формирования адреса приведена в таблице 2.

Для сокращения затрат памяти подпрограммы формирования адресов можно сделать с несколькими входами. На рисунке 1 показана схема вычисления адресов для нескольких значений полей mod, r/m.

Рис. 2. Схема вычисления адреса

Формирование адреса операнда

Таблица 2

Содержание МК

Поле

Значение

Функция

ARAM:=IP+CS

A

B

ALU

WM

C

8

3

2

IP

CS

Сложение

Запись в ARAM

IP:=IP+2

B

SRC

CONST

C

5

2

IP

CONST, RGB

Приращение IP

ЧтОП

RD:=RGR

MEM

DST

B

5

1

?

Чтение слова

RGRРЗУ

Выбор регистра

RD:=RD+SI

A

B

ALU

6

?

3

SI

RD

Cложение

RD:=RD+BP

A

B

ALU

6

?

3

BP

RD

Сложение

ARAM:=RD+SS

A

B

ALU

WM

A

?

3

2

SS

RD

Сложение

Запись в ARAM

  1. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

    1. Ознакомиться с режимами адресации и микропрограммированием формирования исполнительных адресов.

    1. Закодировать программу, указанную в задании (табл.3).

    2. Разработать микропрограммы операций с учетом используемых способов адресации и произвести их отладку.

    3. Ввести программу, исходные данные и таблицу преобразования кодов операций в начальные адреса микропрограмм.

    4. Отладить и выполнить программу в режимах КОМАНДА и АВТОМАТ.

  1. СОДЕРЖАНИЕ ОТЧЕТА

В отчет входят программы, микропрограммы операций, таблица преобразования адресов, результаты вычислений, протокол выполнения программы в режиме КОМАНДА, протокол формирования адреса для наиболее сложного способа адресации в режиме МИКРОКОМАНДА.

  1. КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. Опишите режимы адресации, используемые в МП-86.

  2. Составьте микропрограмму вычисления адреса для режима, указанного преподавателем.

  3. Сравните затраты микропрограммной памяти при использовании раздельных подпрограмм для каждого режима адресации и общих подпрограмм для каждого режима адресации и общих подпрограмм с неколькими входами.

Варианты заданий

Таблица 3

Mov AX, 127

L: Cmp AX,DX

Add DX, 25[BP][SI]

Jmp L

Hlt

Mov CX,14

L: Add DX, BX

Loop L

Mov AX, 200H [BP][DI]

Hlt

3.

Mov AX, 100

L: Add AX, 12H [BX][SI]

Dec SI

Jnz L

Hlt

4.

Mov AX, [200H]

L: Add 100 [BX][SI], 180H

JS L

Mov [180H], AX

Hlt

Таблица 3 (окончание)

5.

Mov CX,18

L: Mov DX, [BX][SI]

Inc SI

Cmp AX, DX

Jnz L

Mov [200H], AX

Hlt

6.

Mov AX, [300]

L: Mov DI, [BX][SI]

Inc SI

Test DI, 0

Jnl L

Hlt

7.

Mov AX, 20H

L: Inc AX

Add DX, 100[BP][DI]

Jl L

Mov [20H], AX

Hlt

8.

Mov CX, 8

L: Sub 100[BP][DI], 8

Dec DI

Loop L

Mov [100], AX

Hlt

9.

XCNG AX, 300H[BX][SI]

Mov CX, 10

L: ADD [BX], DX

Loop L

Mov [100H], AX

Hlt

10.

Add AX, 25

Sub DX, CX

L: Add 25[BP][SI], AX

Inc SI

Jl L

Hlt

Оглавление

Работа №1. Структура процессора и микропрограммирование алгоритмов

Работа №2. Работа с памятью. подпрограммы и циклы

Работа №3. Эмуляция команд микропроцессора i8086

Работа №4. Способы адресации

Соседние файлы в папке Методичка - Лабораторные работы