В учебных целях я сделал визуальный эмулятор Гипотетической ЭВМ. Провёл с его использованием урок по программированию. Люди, никогда в жизни не программировавшие, очень хорошо въехали в программирование на машинных кодах.

Этот выдуманный компьютер состоит из 256 байтов ОЗУ и одного регистра, имеет пять инструкций (сложение, уменьшение, останов, условный и безусловный переходы).
Первое задание для учащихся — научить ГЭВМ умножать числа. Писать программу надо в машинных кодах. Занятие имеет целью ознакомить людей с тем, как работает ЭВМ, с порядком выполнения программы, с шестнадцатеричной системой счисления. Эмулятор написан на Free Oberon.

Репозиторий:https://github.com/kekcleader/gevm
Скачать EXE можно здесь:https://yadi.sk/d/iGta_X5dCdEV2g

Редактируя код на Обероне, можно легко добавить в ГЭВМ новые инструкции.

Пример обработки инструкций:
## Код:
```
IF instr = 0E4H THEN
  mem[v3] := CHR((ORD(mem[v1]) + ORD(mem[v2])) MOD 256);
  Mark(v3);
  pc := CHR(p4)
ELSIF instr = 0A1H THEN pc := mem[p1]
ELSIF instr = 0B4H THEN
  mem[v1] := CHR((ORD(mem[v1]) - 1) MOD 256);
  Mark(v1);
  pc := CHR(p2)
ELSIF ...
```
