ALU и BSU¶
Таблица операций¶
| ID | BIN | Имя | Устройство | Описание |
|---|---|---|---|---|
00h |
0000 |
ADD | ALU | Сложение |
01h |
0001 |
SUB | ALU | Вычитание |
02h |
0010 |
MUL | ALU | Умножение |
03h |
0011 |
DIV | ALU | Деление |
04h |
0100 |
AND | ALU | Логическое И |
05h |
0101 |
OR | ALU | Логическое ИЛИ |
06h |
0110 |
XOR | ALU | Исключающее ИЛИ |
07h |
0111 |
NOT | ALU | Побитовое НЕ |
08h |
1000 |
LSL | BSU | Логический сдвиг влево |
09h |
1001 |
LSR | BSU | Логический сдвиг вправо |
0Ah |
1010 |
ASR | BSU | Арифметический сдвиг вправо |
0Bh |
1011 |
ROL | BSU | Циклический сдвиг влево |
0Ch |
1100 |
ROR | BSU | Циклический сдвиг вправо |
Соответствие опкодов и операций¶
В таблице ALU_PLA.txt опкоды инструкций отображаются в коды операций АЛУ/BSU:
| Опкод | Инструкция | Код АЛУ | Операция |
|---|---|---|---|
02h |
ADD | 0000 |
ADD |
03h |
ADC | 0000 |
ADD |
04h |
SUB | 0001 |
SUB |
05h |
SBB | 0001 |
SUB |
06h |
MUL | 0010 |
MUL |
07h |
IMUL | 0010 |
MUL |
08h |
DIV | 0011 |
DIV |
09h |
IDIV | 0011 |
DIV |
0Ah |
AND | 0100 |
AND |
0Bh |
OR | 0101 |
OR |
0Ch |
XOR | 0110 |
XOR |
0Dh |
NOT | 0111 |
NOT |
0Eh |
INC | 0000 |
ADD |
0Fh |
DEC | 0001 |
SUB |
1Ah |
LSL | 1000 |
LSL |
1Bh |
LSR | 1001 |
LSR |
1Ch |
ASR | 1010 |
ASR |
1Dh |
ROL | 1011 |
ROL |
1Eh |
ROR | 1100 |
ROR |
Замечание: инструкции
INCиDECреализованы через операцииADDиSUBсоответственно, что отражено в комментариях PLA-таблицы.