Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod.rtf
Скачиваний:
5
Добавлен:
09.11.2019
Размер:
177.25 Кб
Скачать

000 До fff. В каждом слове памяти могут храниться четыре

шестнадцатиричные цифры и знак, представляющие собой команду

или число.

Гипотетическая ЭВМ имеет в своем составе одно

устройство ввода ( in ) и одно устройство вывода ( out ).

Формат команд простой ЭВМ следующий :

Каждая команда занимает одно слово оперативной памяти

и имеет формат:

+СААА

или

-СААА ,

где:

+С/-С - код операции (КОП). Адресные команды имеют КОП > -7.

ААА - представляет собой адрес (для адресных команд)

или расширение кода операции (для безадресных комманд).

Все числовые комбинации вида +С/-С (для адресных

команд) или вида +СААА/-СААА (для безадресных команд) не

представлящие собой код команды (см. Таблицу команд)

являются запрещенными в качестве команд.Поступление

запрещенной кодовой комбинации в качестве команды приводит к

особой 'Ошибке Выборки Команды' во время выполнения

программы и к останову работы Гипотетической ЭВМ.

Гипотетическая ЭВМ может выполнять 46 команд, каждая

из которых имеет мнемоническое обозначение. Мнемонические

обозначения команд имеют длину от двух до четырех символов.

Все команды Гипотетической ЭВМ приведены в таблице 1, где:

A - аккумулятор (сумматор).

X - регистр X.

Y - регистр Y.

PC - программный счетчик.

SP - указатель стека.

<adr> - содержимое ячейки памяти по адресу <adr>.

[Reg] - содержимое ячейки памяти по адресу, хранящемуся

в регистре Reg.

Команды гипотетической ЭВМ Таблица 1

+====+======+======+=====+===================================+

|Ном.|Мнем. | КОП |Расш.| Описание |

| |обозн.| |КОП | Команды |

+====+======+======+=====+===================================+

| 1 | ADD | 0x5 | 0x0 | A=A+<adr> (сложение с памятью ) |

| 2 | ADX | -0xA | 0xA | A=A+X (сложение с рег. X ) |

| 3 | CALL | -0x3 | 0x0 | Переход на подпр. по адресу <adr> |

| 4 | DEC | -0xA | 0x3 | A=A-1 (вычитание с памятью) |

| 5 | DIV | 0x8 | 0x0 | A=A/<adr> (деление с памятью ) |

| 6 | DVX | -0xA | 0xD | A=A/X (деление с рег. X ) |

| 7 | IN | -0xC | 0x1 | Y=<port> (ввод с устр. ввода ) |

| 8 | INC | -0xA | 0X2 | A=A+1 (инкремент рег. A ) |

| 9 | JC | 0xC | 0x0 | IF flag C PC= adr + |

| 10 | JE | -0x1 | 0x0 | E PC= adr | условные |

| 11 | JS | 0xE | 0x0 | S PC= adr | переходы |

| 12 | JZ | 0xA | 0x0 | Z PC= adr + |

| 13 | JMP | 0x9 | 0x0 | PC=adr> (безусл. переход) |

| 14 | JNC | 0xD | 0x0 | IF NOT(flag C) PC= adr + |

| 15 | JNE | -0x2 | 0x0 | E PC= adr |условные |

| 16 | JNS | 0xF | 0x0 | S PC= adr |переходы |

| 17 | JNZ | 0xB | 0x0 | Z PC= adr + |

| 18 | LDA | 0x1 | 0x0 | A=<adr> (загрузка рег.A из памяти)|

| 19 | LDX | 0x2 | 0x0 | X=<adr> (загрузка рег.X из памяти)|

| 20 | LDY | -0x4 | 0x0 | Y=<adr> (загрузка рег.Y из памяти)|

| 21 | LDAX | -0xD | 0x1 | A=[X] косв. загр. рг.A через рг.X |

| 22 | LOOP | -0x6 | 0x0 | X=X-1,if(X>0){ PC= adr } (цикл ) |

| 23 | MAX | -0xB | 0x3 | A=X ( пересылка рг.X в рг.A ) |

| 24 | MAY | -0xB | 0x5 | A=Y ( пересылка рг.Y в рг.A ) |

| 25 | MLX | -0xA | 0xC | A=A*X ( умножение с рег.X ) |

| 26 | MUL | 0x7 | 0x0 | A=A*<adr> (умножение с памятью ) |

| 27 | MXA | -0xB | 0x4 | X=A ( пересылка рг.A в рг.X ) |

| 28 | MXY | -0xB | 0x7 | X=Y ( пересылка рг.Y в рг.X ) |

| 29 | MYA | -0xB | 0x6 | Y=A ( пересылка рг.A в рг.Y ) |

| 30 | MYX | -0xB | 0x8 | Y=X ( пересылка рг.X в рг.Y ) |

| 31 | MASP | -0xB | 0x9 | A=SP ( пересылка рг.SP в рг.A) |

| 32 | MSPA | -0xB | 0xA | SP=A ( пересылка рг.A в рг SP) |

| 33 | NEG | -0xA | 0x8 | A=A*-1 (изменение знака ) |

| 34 | NOP | 0x0 | 0x0 | Нет операции |

| 35 | OUT | -0xC | 0x2 | <port>=Y (запись в порт содерж. Y)|

| 36 | POP | -0xB | 0x2 | A=[SP], SP=SP-1 (взять со стека) |

| 37 | PUSH | -0xB | 0x1 | [SP]=A, SP=SP+1 (положить на стек)|

| 38 | RET | -0xC | 0x4 | возврат из подпрограммы |

| 39 | SBX | -0xA | 0xB | A=A-X (вычитьнание с рг. Х ) |

| 40 | STA | 0x3 | 0x0 | <adr>=A (выгрузка рг.A в память) |

| 41 | STX | 0x4 | 0x0 | <adr>=X (выгрузка рг.Х в память) |

| 42 | STY | -0x5 | 0x0 | <adr>=Y (выгрузка рг.Y в память) |

| 43 | STAX | -0xD | 0x2 | [X]=A (косв. выгр. рг.A в память) |

| 44 | STOP | -0xC | 0x3 | останов эвм |

| 45 | SUB | 0x6 | 0x0 | A=A-<adr> (вычитание ) |

| 46 | ZERO | -0xA | 0x1 | A=0 (обнуление рг. A ) |

+====+======+======+=====+===================================+

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]