Вперед, только вперед...

Процессор homebrew small

Архитектура процессора

Регистры:

  • 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 Флаг трассировки. Используется для отладки, позволяет выполнять инструкции по одной.

Примеры двух процов

LIS: Версия процессора 0.1

Основная система команд Гигатрон

 

<< Вернуться на предыдущую страницу