Архитектура процессора
Регистры:
- R0, R1, R2, R3: Четыре рабочих регистра, каждый размером 8 бит.
- Флаги (F): Регистр флагов размером 8 бит, содержащий информацию о состоянии процессора.
- Счетчик команд (PC): Регистр, который хранит адрес следующей команды для выполнения.
Команды:
Команды регистр-регистр
Эти команды выполняют операции между регистрами:
- ADD Rdest, Rsrc: Сложение значения из регистра Rsrc с Rdest, результат сохраняется в Rdest.
- SUB Rdest, Rsrc: Вычитание значения из Rsrc из Rdest, результат сохраняется в Rdest.
- MUL Rdest, Rsrc: Умножение значения из Rsrc на Rdest, результат сохраняется в Rdest.
- DIV Rdest, Rsrc: Деление значения из Rdest на Rsrc, результат сохраняется в Rdest.
- MOV Rdest, Rsrc: Копирование значения из Rsrc в Rdest.
Команды регистр-память
Эти команды выполняют операции между регистрами и памятью:
- LOAD Rdest, addr: Загрузка 8-битного значения из памяти по адресу addr в регистр Rdest.
- STORE Rsrc, addr: Сохранение 8-битного значения из регистра Rsrc по адресу addr в памяти.
- LOAD_IMM Rdest, value: Загрузка немедленного значения value в регистр Rdest.
Команды управления потоком
- JUMP addr: Переход к команде по адресу addr.
- JZ addr: Переход к адресу addr, если флаг нуля (Z) установлен.
- JNZ addr: Переход к адресу addr, если флаг нуля (Z) не установлен.
- NOP: Нет операции (для задержки или синхронизации).
Регистр флагов (F)
Регистр флагов F имеет 8 бит, каждый из которых отвечает за определенное состояние процессора:
- Бит 0 (Z): Флаг нуля. Устанавливается, если результат последней арифметической операции равен нулю.
- Бит 1 (C): Флаг переноса. Устанавливается, если произошел перенос в результате сложения или заимствование при вычитании.
- Бит 2 (N): Флаг знака. Устанавливается, если результат операции отрицательный (для знаковых чисел).
- Бит 3 (V): Устанавливается, если произошел переполнение при арифметических операциях со знаковыми числами.
- Бит 4 (I): Флаг прерывания. Указывает, разрешены ли прерывания.
- Бит 5 (D): Флаг десятичного режима. Используется для операций с десятичными числами.
- Бит 6 (O): Флаг общего назначения (может использоваться для пользовательских нужд).
- Бит 7 (S): Флаг статуса. Может использоваться для других состояний процессора или для специальных операций.
еще вариант
Архитектура процессора
Регистры:
- R0, R1, R2, R3 — 4 регистра общего назначения.
- F — регистр флагов, который может содержать флаги, такие как Zero (Z), Carry (C), Overflow (O) и Negative (N).
- PC — регистр счетчика команд, который указывает на адрес следующей инструкции в памяти.
Память:
- Предполагается наличие памяти для хранения инструкций и данных. Можно использовать простую модель с адресацией по байтам.
Инструкции:
- LOAD R, addr — загрузка значения из памяти по адресу addr в регистр R.
- STORE R, addr — сохранение значения из регистра R в память по адресу addr.
- ADD R1, R2 — сложение значений из регистров R1 и R2 с сохранением результата в R1.
- SUB R1, R2 — вычитание значений из регистров R1 и R2 с сохранением результата в R1.
- JZ addr — переход по адресу addr, если флаг Zero установлен.
Бит | Назначение | Описание |
---|---|---|
0 | ZF | Флаг нуля. Устанавливается, если результат операции равен нулю. |
1 | CF | Флаг переноса. Устанавливается, если произошел перенос при арифметической операции. |
2 | OF | Флаг переполнения. Устанавливается, если результат операции выходит за пределы допустимого диапазона. |
3 | SF | Флаг знака. Устанавливается, если результат операции отрицательный. |
4 | PF | Флаг четности. Устанавливается, если количество единиц в результате операции четно. |
5 | AF | Флаг вспомогательного переноса. Используется в двоичных операциях. |
6 | DF | Флаг направления. Определяет направление работы с памятью (вперед или назад). |
7 | TF | Флаг трассировки. Используется для отладки, позволяет выполнять инструкции по одной. |
Примеры двух процов
Основная система команд Гигатрон