Данное приложение является эмулятором intel-8086, правда вместо РОН'ом имеет стек данных.
Спеки:
- Тип архитектуры: Стековая ГА (Гарвардская архитектура).
- Формат команд: Одноадресные.
- Типы адресации: Непосредственная, Прямая, Косвенная.
- Адресуемая память: 65,536 кб (Поле адреса операнда команды 16 бит, одна ячейка ОЗУ = 8 бит).
- Инициализация инстанса SuperPC (отвечает за всю логику эмулятора).
- Загрузка инструкций.
- Проверка инструкций на валидность.
- Задание адреса для каждой инструкции.
- Пошаговое выполнение инструкций.
- Расшифровка инструкции.
- Выполнение задачи.
- Отрисовка результатов.
- Отрисовывание стек.
- Отрисовывание регистров.
- Отрисовывание переменных в памяти.
- При достижении конца инструкций сбрасывание всех программных данных.
Спасибо за внимание :)
Выполнить программу:
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]