1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xiaowuzxc-Yduck-processor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
大黄鸭指令集.md 4.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 4 месяцев назад 115f538

Формат команд ассемблера

Набор команд — это душа процессора, регистры — основа набора команд.

Структура регистров

Конкретные данные см. в doc/16 группа регистров.xlsx

Номер Обозначение Функция
0 ZE Нулевой регистр
1 DK Арифметико-логический регистр
2-C R0-RB Общие регистры
D RC Регистр возврата при прерывании
F PC Счётчик программы

Спецификации команд

Конкретные данные см. в doc/16 таблица команд.xlsx

8-битные команды

Процессор может выполнять две 8-разрядные команды за один раз, но не может записывать в один и тот же регистр, не может одновременно читать или записывать данные в пространстве данных.
Формат команд: [команда 1], [регистр 1]; [команда 2], [регистр 2]

[7:4] команда [3:0] регистр 1
  1. LD загрузка
  • Считать число из адреса, на который указывает DK, и сохранить его в [регистре 1]
  1. SV сохранение
  • Записать значение [регистра 1] по адресу, указанному DK
  1. NF логическое отрицание
  • Инвертировать значение [регистра 1]
  1. IN регистр +1
  • Увеличить значение [регистра 1] на 1
  1. SW обмен высоким и низким байтами регистра
  • Поменять местами высокий и низкий байты [регистра 1]

16-битные команды

Конкретные данные см. в 16 таблице команд.xlsx

[15:12] команда [11:8] регистр 1 [7:4] регистр 2 [3:0] X

Формат команды: [команда], [регистр 1], [регистр 2]

  1. WR перенос регистра
  • Значение [регистра 1] записывается в [регистр 2]
  1. CR сравнение
  • Если [регистр 1] > [регистр 2], то DK устанавливается в 1
  1. LA логическое И
  • Результат операции И между [регистром 1] и [регистром 2] записывается в DK
  1. LO логическое ИЛИ
  • Результат операции ИЛИ между [регистром 1] и [регистром 2] записывается в DK
[15:12] команда [11:8] регистр 1 [7:0] непосредственное значение

Формат команды: [команда], [регистр 1], [непосредственное значение]

  1. AD сложение
  • DK = DK + [регистр 1] + [непосредственное значение]
  1. SB вычитание
  • DK = DK - [регистр 1] - [непосредственное значение]
  1. JW переход при ненулевом значении
  • Если DK != 0, перейти к [регистру 1] + [непосредственному значению]
  1. JA безусловный переход
  • Перейти к [регистру 1] + [непосредственному значению]
  1. LL логический сдвиг влево
  • Логический сдвиг DK влево на [регистр 1] + [непосредственное значение], заполнение нулями слева
  1. LR логический сдвиг вправо
  • Логический сдвиг DK вправо на [регистр 1] + [непосредственное значение], заполнение нулями справа
  1. TL циклический сдвиг влево
  • Циклический сдвиг DK один раз влево/вправо

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/xiaowuzxc-Yduck-processor.git
git@gitlife.ru:oschina-mirror/xiaowuzxc-Yduck-processor.git
oschina-mirror
xiaowuzxc-Yduck-processor
xiaowuzxc-Yduck-processor
master