/Intel-8086-emulator

Emulator of Intel 8086 processor, but a little bit different :)

Primary LanguageC#MIT LicenseMIT

О приложении:

Данное приложение является эмулятором intel-8086, правда вместо РОН'ом имеет стек данных.

Спеки:

  • Тип архитектуры: Стековая ГА (Гарвардская архитектура).
  • Формат команд: Одноадресные.
  • Типы адресации: Непосредственная, Прямая, Косвенная.
  • Адресуемая память: 65,536 кб (Поле адреса операнда команды 16 бит, одна ячейка ОЗУ = 8 бит).

Алгоритм работы приложения:

  1. Инициализация инстанса SuperPC (отвечает за всю логику эмулятора).
  2. Загрузка инструкций.
    1. Проверка инструкций на валидность.
    2. Задание адреса для каждой инструкции.
  3. Пошаговое выполнение инструкций.
    1. Расшифровка инструкции.
    2. Выполнение задачи.
    3. Отрисовка результатов.
      1. Отрисовывание стек.
      2. Отрисовывание регистров.
      3. Отрисовывание переменных в памяти.
  4. При достижении конца инструкций сбрасывание всех программных данных.

Спасибо за внимание :)

Цель:

Выполнить программу:

cache = var * 3 cache = cache << 1 if (cache & 1 == 0) cache = !cache else cache = cache >> 1

На псевдокоде:

define var 12 define cache 0

push var push 3 imul rcl jnp if ror jmp else if: not else: store [cache]