Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессорные системы / i96_ПК_КП_СпАдресации.doc
Скачиваний:
12
Добавлен:
01.05.2014
Размер:
556.54 Кб
Скачать

Система команд

  1. Процессор работает равноправно как со словами так и с байтами

  2. Наличие регистрового файла

Команды трехадресные: адрес результата, адрес 1-го операнда и адрес 2-го операнда Все способы адресации может иметь только 2-ой операнд, остальные должны иметь прямую регистровую адресацию. Каждой трехадресной команде соответствует 2-х адресная, в которой объединены адреса результата и 1-го операнда. Во всех командах арифметических или логических два или три адреса.

С функциональной точки команды подразделяются на группы: пересылки, логика, арифметика, команды переходов, управления. Надо знать какие функции выполняют команды в каждой группе, способы адресации, форматы команд соответствующие способу адресации.

96-ой процессор работает как со словами так и с байтами – постфикс В

Архитектура регистровых файлов; обобщение концепции банков регистров (их много),

укороченный способ адресации памяти

Типы операндов

  1. BIT

JBCbreg,binto,CAD; если (breg.binto= 0, то переход (PC)←(PC)+rel

JBSbreg,binto,CAD; если (breg.binto= 1, то переход (PC)←(PC)+rel

breg–byteregister– 8 битный адрес 8-ми битного регистра

wreg- 8 битный адрес 16-разрядного регистра во внутрикристальном регистровом файле;

binto– номер бита

CAD–(commandaddress) 16разрядный адрес команды куда происходит переход – автоматически преобразуется ассемблером в относительный адресrel[-128; 127].

Формат команды

  1. BYTE-8 бит без знака

  2. WORD-16 бит без знака

  3. DoubleWORD-32 бит без знака

  4. SHORTINTEGER- {-128;127}

  5. INTEGER-{-32768;32767}

  6. LONGINTGER-{-231;231-1}

Длинные слова только для операции сдвига, умножения и деления

16 бит операнды - выравнивание по четным адресам

32 бит операнды - выравнивание по адресам кратным 4

Способы адресации и форматы команд

Форматы команд определяются кодом операции. Код операции определяет ширину операндов (слово или байт) и их количество (три или два – с постфиксом В). Операнды в формате идут в обратном порядке по отношению к мнемонике.

0. Прямая регистровая

AX,BX,CX- 8 бит адрес 16 битного операнда

AL-8 бит адреса 8 битовой операции (младшие или просто 8 бит)

AH-8 бит адреса 8 битовой операции (старшие или просто 8 бит)

ADD AX,BX,CX ; (AX)<-(BX)+(CX)

MULAX,BX; (AX)<-(AX)*(BX), АХ 8-ми битный адрес 32-х битн. операнда

INCB CL ; (CL)<-(CL)+1

INC CX ; (CX)<-(CX)+1

OР 00

CX

BX

AX

1. Непосредственная адресация

ADDAX,#340 ; (AX)<-(AX)+340

Форматы команды:

OP 01

Data8

breg2

Breg1

OP 01

D16,L

D16h

Wreg2

Wreg1

2. Косвенная (адрес адреса)

ADDBAL,BL,[CX] ; (AL)<-(BL)+MEM_BYTE((CX)),CX– 8-ми битный адрес 16-ти битного адреса 8-ми битного операнда

Загрузка:LDAX,[AX] ; (AX)<-MEM_WORD((AX)) –AX– 8-ми битный адрес 16-ти битного адреса 16-ти битного операнда

Формат команды:

OP 10

Wreg 0

Breg2

Breg1

или

A

Wreg2

Wreg1

DDBAL,BL,[CX]

    1. Косвенная автоинкрементная

ADDB AL,BL,[CX]+ ; (AL)<-(BL)+MEM_BYTE((CX)), (CX)<-(CX)+1

ADD AX, BX, [CX] + (AX) ← (BX) + MEM_WORD ((CX)), (CX) ← (CX) + 2

Формат команды:

OP 10

Wreg 1

Breg2

Breg1

3. Косвенная индексная, короткий индекс

A

OP 11

Wreg 0

Breg1

Ind8

Breg2

DDBAL,BL,3[CX] ; (AL)<-(BL)+MEM_BYTE(3+(CX))

3.1. Косвенная индексная, длинный индекс

A

OP 11

Wreg 1

Ind16L

Ind16h

Breg2

Breg1

DDBAL,BL,TABLE[CX] ; (AL)<-(BL)+MEM_BYTE(TABLE+(CX))

TABLE– метка начала таблицы,TABLE+(CX) – исполнительный адрес.

AND AX, BX, TABLE [CX] ; (AX) ← (BX) Λ MEM_WORD(TABLE+(CX))

3.2. Частный случай – длинная индексация косвенного 0-го регистра

[0] 0 – по определению архитектуры 96-ой серии; поэтому

ADDAX,1234[0] ; (AX) ← (AX) +MEM_WORD(1234) – прямая адресация всего адресного пространства.

9