Данному образовательному сайту пришлось несколько раз менять свое имя. С 2011 года доступ к нему обеспечивается по URL
http://educomp.runnet.ru

emc.km.ru (2001-2007) ==> educomp.org.ru (2007-2011) ==> educomp.runnet.ru (2011-...)
Более подробно об истории сайта можно прочитать здесь.


Учебные модели компьютера



Модели (software):

"Е14" (parallel !!!)

Модели (hardware):






Награды сайта
Награды сайта

"ANT-8": таблица команд

Перед нами типичная RISC-система инструкций: обращение к памяти только в двух командах LOAD и STORE, а в остальных - только регистры. Аналогичная система имеется в модели "MMIX".

Система команд состоит из 16 инструкций (код операции - 4-разрядный). В связи с этим чувствуется некоторая ограниченность и некомфортность, особенно при программировании условных переходов: конечно, можно "скомпоновать" переход по "не равно" из такового по "равно" и безусловного перехода, но для учебной машины это не очень удобно. Если вас интересует эта проблема, можете взглянуть как она "более мощно" решена в учебной модели "Е97", где КОП тоже 4-разрядный, но операций значительно больше (см. решения для переходов и однооперандных инструкций); справедливости ради следует сказать, что "Е97" имеет двухадресную систему команд и не является RISC-машиной, поэтому там не требуется максимально единообразная структура инструкций.

hex-
код
ассемблерпояснения
оп.операнды действиедополнения
8R12addres, op1, op2 res:=op1 + op2в r1 - признак переполнения*
9R12subres, op1, op2 res:=op1 - op2в r1 - признак переполнения*
AR12mulres, op1, op2 res:=младший_байт(op1 X op2)в r1 - старший_байт(op1 X op2)
CR12andres, op1, op2 res:=op1 AND op2в r1 - отрицание res
DR12norres, op1, op2 res:=op1 NOR op2в r1 - отрицание res
BR12shfres, op1, op2 res:=сдвиг op1 на op2 разрядовпри op2>0 сдвиг влево,
иначе - вправо; r1 = 0
4R12beqreg, op1, op2 ветвление по reg при op1=op2r1 сохраняется
5R12bgtreg, op1, op2 ветвление по reg при op1>op2r1 сохраняется
6R1Cld1res, op1, uconst4** res := (op1+uconst4) r1 сохраняется
7R1Cst1reg, op1, uconst4** (op1+uconst4) := regr1 сохраняется
1RCClcres, const8** res := const8r1 сохраняется
3-CCjmpuconst8** безусловный переход на uconst8r1 = след. адрес (для возврата!)
2RCCincreg, const8** reg := reg + const8в r1 - признак переполнения*
ER-Cinres, chan прочитать байт
с внешнего устройства
chan = Hex, ASCII, или Binary;
r1 =1 при EOI, иначе 0
F-RCoutop1, chan записать байт
во внешнее устройство
chan = Hex, ASCII, или Binary;
r1 = 0
0---hlt  стопдамп в ant8.core

Примечания

* признак переполнения:

  • если результат < -128, r1=-1;
  • если результат > 127, r1=1;
  • иначе r1=0.

** uconst4 и uconst8 - 4-х и 8-и битные константы без знака; const8 - 8-битная константа со знаком

Регистр r0 всегда равен 0.

В графе hex-кодов вместо R, 1 и 2 (результат, операнды 1 и 2 соответственно) везде надо подставлять номер регистра, а вместо C - константу. Прочерк (минус) означает, что данная hex-цифра не используется и, следовательно, значения не имеет.


Автор сайта - Евгений Александрович Еремин (Пермский государственный педагогический университет). e_eremin@yahoo.com