Система команд
Процессор работает равноправно как со словами так и с байтами
Наличие регистрового файла
Команды трехадресные: адрес результата, адрес 1-го операнда и адрес 2-го операнда Все способы адресации может иметь только 2-ой операнд, остальные должны иметь прямую регистровую адресацию. Каждой трехадресной команде соответствует 2-х адресная, в которой объединены адреса результата и 1-го операнда. Во всех командах арифметических или логических два или три адреса.
С функциональной точки команды подразделяются на группы: пересылки, логика, арифметика, команды переходов, управления. Надо знать какие функции выполняют команды в каждой группе, способы адресации, форматы команд соответствующие способу адресации.
96-ой процессор работает как со словами так и с байтами – постфикс В
Архитектура регистровых файлов; обобщение концепции банков регистров (их много),
укороченный способ адресации памяти
Типы операндов
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].
Формат команды
BYTE-8 бит без знака
WORD-16 бит без знака
DoubleWORD-32 бит без знака
SHORTINTEGER- {-128;127}
INTEGER-{-32768;32767}
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
Косвенная автоинкрементная
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
3.1. Косвенная индексная, длинный индекс
A
OP 11 Wreg
1 Ind16L Ind16h
Breg2
Breg1
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) – прямая адресация всего адресного пространства.