Виртуальная машина, выполняющая ограниченный набор простых команд.
Машина имеет:
- однородную память (программа+данные) в виде массива int[256]
- регистр IP - указатель на текущую команду
- регистр RX - результат последней операции
Примерное описание команд см в Machine.COMMAND
- Парсинг (разбор) исходного файла и построение таблицы символов
- Ассемблирование в двоичный файл
- Исполнение на машине
;Из каждой пары чисел выводит максимальное число
.org 2 ;reserve(0..1)
$_start:
in
str [0] ;mem[0] = in(a)
in
str [1] ;mem[1] = in(b)
sub [0] ;rx = b-a
ifn ;if rx < 0
jmp $_ifneg
ldr [1] ;else rx=load(b)
jmp $_output
$_ifneg:
ldr [0] ;then rx=load(a)
$_output:
out ;out(rx)
jmp $_start
Использовать последовательно утилиты (с передачей исходника)
SymbTabGen.exe %inpFile%
Assembler.exe %inpFile%
Machine.exe %inpFile%
Либо использовать bat'ник, передав ему путь к исходнику