Вспомогательные таблицы

В данном разделе представлены вспомогательные таблицы (табл. 8.4—8.8) для работы с моделью учебной ЭВМ.

 

Таблица 8.4. Таблица команд учебной ЭВМ

 

Ст. Мл.
NOP JMP   MOV  
IN JZ RD RD RDI
OUT JNZ WR WR  
IRET JS ADD ADD ADI
WRRB JNS SUB SUB SBI
WRSP JO MUL MUL MULI
PUSH JNO DIV DIV DIVI
POP JRNZ   IN  
RET INT EI OUT  
HLT CALL DI    

 

Таблица 8.5. Типы адресации, их коды и обозначение

 

Обозначение Код Тип адресации Пример команды
  Прямая (регистровая) ADD 23 (ADD R3)
# Непосредственная ADD # 33
@ Косвенная ADD @ 33
[ ] Относительная ADD [33]
@R Косвенно-регистровая ADD @R3
@R+ Индексная с постинкрементом ADD@R3+
-@R Индексная с преддекрементом ADD -@R3

 

В табл. 8.6 приняты следующие обозначения:

DD— данные, формируемые командой в качестве (второго) операнда: прямо или косвенно адресуемая ячейка памяти или трехразрядный непосредственный операнд;

R* — содержимое регистра или косвенно адресуемая через регистр ячейка памяти;

ADR* — два младших разряда ADR поля регистра CR;

V — адрес памяти, соответствующий вектору прерывания;

М(*) — ячейка памяти, прямо или косвенно адресуемая в команде;

I — пятиразрядный непосредственный операнд со знаком.

 

Таблица 8.6. Система команд учебной ЭВМ

 

КОП Мнемо- код Название Действие
NOP Пустая операция Нет
IN Ввод Acc ← IR
OUT Вывод OR ← Acc
IRET Возврат из прерывания FLAGS.PC ←M(SP);INC (SP)
WRRB Загрузка RB RB ← CR [ADR]
WRSP Загрузка SP SP ← CR [ADR]
PUSH Поместить в стек DEC(SP); M(SP) ← R
POP Извлечь из стека R ® M(SP); INC (SP)
RET Возврат PC ® M(SP); INC (SP)
HLT Стоп Конец командных циклов
JMP Безусловный переход PC ← CR [ADR]
JZ Переход, если 0 if Acc = 0 then PC ← CR [ADR]
JNZ Переход, если не 0 if Acc ¹ 0 then PC ← CR [ADR]
JS Переход, если отрицательно if Acc < 0 then PC ← CR [ADR]
JNS Переход, если положительно if Acc³ 0 then PC ← CR [ADR]
JO Переход, если переполнение if ½Acc½>0 then PC ← CR [ADR]
JNO Переход, если нет переполнения if½Acc½£ 0 then PC ← CR [ADR]
JRNZ Цикл DEC(R); if R >0 then PC← CR [ADR]
INT Программное прерывание DEC(SP); M(SP) ← FLAGS.PC; PC ← M(V)
CALL Вызов подпрограммы DEC(SP); M(SP)← PC; PC ←CR(ADR)
Нет    
RD Чтение Acc ← DD
WR Запись M (*)← Acc
ADD Сложение Acc ← Acc + DD
SUB Вычитание Acc ← Acc - DD
MUL Умножение Acc ← Acc x DD
DIV Деление Acc ← Acc /DD
Нет    
EI Разрешить прерывание IF ← 1
DI Запретить прерывание IF ← 0
MOV Пересылка R1 ← R2
RD Чтение Acc ← R*
WR Запись R* ← Acc
ADD Сложение Acc ← Acc+ R*
SUB Вычитание Acc ← Acc – R*
MUL Умножение Acc ← Acc - R*
DIV Деление Acc ← Acc/R*
IN Ввод Acc ← BY (CR[ADR*])
OUT Вывод BY (CR[ADR*]) ← Acc
Нет    
Нет    
RDI Чтение Acc ← I
Нет    
JNS Сложение Acc ← Acc +I
JO Вычитание Acc ← Acc - I
JNO Умножение Acc ← Acc x I
JRNZ Деление Acc ← Acc/I

 

Таблица 8.7. Таблица кодов ASCII (фрагмент)

 

  А В С D E F
      @ P p         A Р а р
    ! A Q a q         Б С б с
    B R b r         В Т в т
    # C S c s         Г У г у
    $ D T d t         Д Ф д ф
    % E U e u         Е Х е х
    & F V f v         Ж Ц ж ц
    G W g w         З Ч з ч
    ( H X h x         И Ш и ш
    ) I Y i y         Й Щ й щ
A     * : J Z j z         К Ъ к ъ
B     + ; K [ k í         Л Ы л ы
C     , < L   l ½         М Ь м ь
D     - = M ] m ý         Н Э н э
E     . > N   n           Щ Ю щ ю
F     / ? O - o           П Я п я

 

Таблица 8.8. Перевод HEX-кодов в десятичные числа

 

  А В С D E F
A
B
C
D
E
F