Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Arch_Metod_2.doc
Скачиваний:
15
Добавлен:
04.05.2019
Размер:
1.35 Mб
Скачать

3.6 Режими адресації мікропроцесора Intel 8086

В більшості випадків для визначення режиму адресації в команді мікропроцесора Intel 8086 використовуються три бітових поля: MOD (2 біти), R/M (3 біти) і W (1 біт). Ефективна адреса операнда для різних поєднань цих бітових полів обчислюється за допомогою різних регістрів мікропроцесора. Іноді в команді явно вказується величина зсуву. Позначимо 16-бітовий зсув D16, 8-бітовий, розширений із знаком, зсув позначимо D8. Тоді правила обчислення ефективної адреси операнда можна задати таблицею 3.7.

Таблиця 3.7 – Режими адресації мікропроцесора Intel 8086

Поле

MOD=00

MOD=01

MOD=10

MOD=11; W=0

MOD=11; W=1

R/M=000

(BX)+(SI)

(BX)+(SI)+D8

(BX)+(SI)+D16

AL

AX

R/M=001

(BX)+(DI)

(BX)+(DI)+D8

(BX)+(DI)+D16

CL

CX

R/M=010

(BP)+(SI)

(BP)+(SI)+D8

(BP)+(SI)+D16

DL

DX

R/M=011

(BP)+(DI)

(BP)+(DI)+D8

(BP)+(DI)+D16

BL

BX

R/M=100

(SI)

(SI)+D8

(SI)+D16

AH

SP

R/M=101

(DI)

(DI)+D8

(DI)+D16

CH

BP

R/M=110

D16

(BP)+D8

(BP)+D16

DH

SI

R/M=111

(BX)

(BX)+D8

(BX)+D16

BH

DI

Наприклад, якщо поля MOD=01 і R/M=011 (значення біта W в цьому випадку не має значення), то ефективна адреса виходить після підсумовування вмісту регістрів BP, DI і 8-бітового зсуву D8, вказаного в команді. Потім ефективна адреса складається з помноженим на 16 значенням, що зберігається в сегментному регістрі. В результаті цих маніпуляцій одержують фізичну адресу операнду.

Завдання 6. Розробити VHDL-модель поведінки блоку, що формує список регістрів, що беруть участь в обчисленні ефективної адреси залежно від значення бітових полів MOD, R/M і W. Всього регістрів шістнадцять: АХ, AH, AL, BX, BH, BL, CX, CH, CL, DX, DH, DL, BP, SP, SI і DI. Список регістрів має вигляд 16-розрядного позиційного кода, кожний біт якого відповідає одному з перерахованих регістрів мікропроцесора Intel 8086. Наприклад, для раніше розглянутого випадку (MOD = 01, R/M = 011, W - будь-яке значення), якщо біти позиційного коду розташовані у вказаному порядку, список задіяних регістрів буде закодований так: 0000000000001001.

3.7 Система команд мікропроцесору Intel 4004

i4004 – один з перших мікропроцесорів, випущений фірмою Intel в 1974 році. Система команд його складалася з 16 машинних, 14 акумуляторних і 15 команд вводу-виведення/зварнення до оперативної пам‘яті. В таблицях 3.8, 3.9 та 3.10 приведені коди операцій і мнемоніка машинних команд процесора Intel 4004.

Таблиця 3.8 – Машинні команди мікропроцесора Intel 4004

Код

Мнемоніка

Опис команди

00h

NOP

Холостий цикл (немає операції).

1Xh

JCN

Умовний перехід при виконанні умови.

2Xh

FIM

Вибірка числа з пам'яті програм в регістрову пару.

2Xh

SRC

Посилка регістрового управління.

3Xh

FIN

Непряма вибірка числа з ПЗП в регістрову пару.

3Xh

JIN

Непрямий перехід за адресою, яка зберігається в регістровій парі.

4Xh

JUN

Безумовний перехід.

5Xh

JMS

Виконати підпрограму. Попередню адресу зберегти в стек.

6Xh

INC

Інкремент вмісту регістра.

7Xh

ISZ

Інкремент і перепускання за нульовою умовою.

8Xh

ADD

Додати вміст регістра до вмісту акумулятора.

9Xh

SUB

Відняти вміст регістра з акумулятора.

AXh

LD

Завантажити акумулятор з регістра.

BXh

XCH

Обміняти вміст регістра і акумулятора.

CXh

BBL

Повернення з підпрограми.

DXh

LDM

Завантажити дані в акумулятор.

Таблиця 3.9 – Акумуляторні команди мікропроцесора Intel 4004

Код

Мнемоніка

Опис команди

F0h

CLB

Загальне скидання.

F1h

CLC

Скинути перенесення.

F2h

IAC

Інкремент вмісту акумулятора.

F3h

CMC

Утворити зворотний код трігера перенесення.

F4h

CMA

Утворити зворотний код вмісту акумулятора.

F5h

RAL

Циклічний зсув вліво вмісту акумулятора і трігера.

F6h

RAR

Циклічний зсув управо вмісту акумулятора і трігера.

F7h

TCC

Передати перенесення в акумулятор.

F8h

DAC

Декремент вмісту акумулятора.

F9h

TCS

Віднімання з перенесенням.

FAh

STC

Встановити трігер перенесення.

FBh

DAA

Десяткова корекція вмісту акумулятора.

FCh

KBP

Перетворення коду клавіатури в двійковий код.

FDh

DCL

Визначити лінію управління пам'яттю.

Таблиця 3.10 – Команди уведення-виведення і звернення до пам‘яті мікропроцесора Intel 4004

Код

Мнемоніка

Опис команди

E0h

WRM

Запис вмісту акумулятора в символьне поле регістра пам‘яті.

E1h

WMP

Запис вмісту акумулятора в порт виводу пам‘ять.

E2h

WRR

Запис вмісту акумулятора в порт уведення-виведення.

E3h

WPM

Запис вмісту акумулятора в пам‘ять програми.

E4h

WR0

Запис вмісту акумулятора в полі 0 пам‘яті.

E5h

WR1

Запис вмісту акумулятора в полі 1 пам‘яті.

E6h

WR2

Запис вмісту акумулятора в полі 2 пам‘яті.

E7h

WR3

Запис вмісту акумулятора в полі 3 пам‘яті.

E8h

SBM

Відняти вміст символьного поля пам‘яті з акумулятора.

E9h

RDM

Читання символьного поля пам‘яті в акумулятор.

EAh

RDR

Читання вмісту порту уведення-виведення в акумулятор.

EBh

ADM

Скласти вміст символьного поля пам‘яті з акумулятором.

ECh

RD0

Читання поля 0 пам‘яті в акумулятор.

EDh

RD1

Читання поля 1 пам‘яті в акумулятор.

EEh

RD2

Читання поля 2 пам‘яті в акумулятор.

EFh

RD3

Читання поля 3 пам‘яті в акумулятор.

Завдання 7. Розробити VHDL-модель поведінки дешифратора машинних команд мікропроцесора Intel 4004. Код операції - 8 біт. На виході дешифратора повинен формуватися позиційний двійковий код вибору операції (16 біт).

Завдання 8. Розробити VHDL-модель поведінки дешифратора акумуляторних команд мікропроцесора Intel 4004. Код операції - 8 біт. На виході дешифратора повинен формуватися позиційний двійковий код вибору операції (14 біт).

Завдання 9. Розробити VHDL-модель поведінки дешифратора команд уведення-виведення і звернення до пам‘яті мікропроцесора Intel 4004. Код операції - 8 біт. На виході дешифратора повинен формуватися позиційний двійковий код вибору операції (15 біт).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]