Реферат: Система команд. Структура слова команд. Синтаксис команд. Группы команд
Функция:
Условный переход по адресу, определяемому пред модифицированным значением регистра I, или по адресу относительно PC и необязательная операция вычисления параллельно с пересылкой данных между памятью данных и регистровым файлом. В этой команде условие IF и ключевое слово ELSE должны обязательно использоваться. Если заданное условие верно, то выполняется переход. Если заданное условие ложно, то операция вычисления и передача из (в) памяти данных выполняются параллельно. В этой команде необязательна только операция вычисления.
Для перехода адрес относительно PC - это 6-разрядное число в виде двоичного дополнения. Если регистр I определен (1с), он модифицируется значением определенного регистра М (Md) для генерации адреса перехода. Операция модификации не влияет на содержимое регистра I. Заметим, что модификаторы команды задержанного перехода (DB), прерывания цикла (LA) и очистки прерывания не разрешены в этой команде.
Для доступа к памяти данных адрес обеспечивается регистром I (la). Значение регистра I поет-модифицируется значением определенного регистра М и обновляется модифицированным значением. Адресация с пред-модификацией для такого доступа к памяти данных запрещена.
Примеры : IF TF JUMP (M8,18), ELSE R6=DM (16,Ml);
IF NE JUMP (PC,0X20), ELSE F12=FLOAT RIO BY R3, R6=DM (115,MO);
Код операции: ( для косвенного перехода)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
110 | D | DMI | DMM | COND | PMI | РММ | DREG |
22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 10
Код операции : ( с переходом относительно PC)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
111 | D | DMI | DMM | COND | RELADDR | DREG |
22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 10
COMPUTE
COND определяет условие для проверки. PMI определяет регистр I для команды косвенного перехода. Регистр I пред-модифицируется, но не обновляется значением регистра М, который выбирается полем РММ. RELADDR - это 6-разрядное число в виде двоичного дополнения, которое прибавляется к текущему значению PC для генерации адреса перехода. D выбирает тип доступа к памяти данных (чтение и запись). DREG определяет регистр регистрового файла. DMI определяет регистр I, который поет-модифицируется и обновляется значением регистра М, определямого полем DMM. Поле COMPUTE определяет вычислительную операцию, выполняемую параллельно с доступом к данным. Если в команде не определено никакой операции вычисления, то это поле NOR
Возврат из подпрограммы или прерывания, необязательное условие, необязательная операция вычисления
Функция:
Возврат из подпрограммы (RTS) или возврат из программы обработки прерывания (RTI). Модификатор команды DB указывает, что переход задержанный; иначе - он незадержанный.
Команда возврата из подпрограммы заставляет процессор выполнить переход по адресу, сохраненному в вершине стека счетчика команд. Различие между RTS и RTI заключается в том, что команда RTI не только извлекает адрес возврата из стека счетчика команд, но также:
1) извлекает содержимое стека состояния, если туда было помещено содержимое регистров состояния ASTAT и MODE1 (если было прерывание IRQ,_0 , прерывание по таймеру или векторное прерывание VIRPT);
2) обнуляет соответствующий бит в регистрах фиксирования прерывания (IRPTL) и указателя маски прерывания (IMASKP).
Возврат выполняется, если условие определено и верно. Если операция вычисления определена без ELSE, она выполняется параллельно с возвратом. Если операция вычисления определена с ELSE, она выполняется только в том случае, если условие ложно. Заметьте, что условие должно быть определено, если определена фраза ELSE вычисление.
Если незадержанный вызов используется как одна из трех последних команд в цикле, то с командой RTS должен применяться модификатор повторного входа в цикл (LR). Команда RTS (LR) гарантирует правильный повторный вход в цикл. Например, в цикле, организованном по счетчику, условия завершения цикла проверяется посредством уменьшения значения счетчика текущего цикла (CURLCNTR) в течение выполнения двух последних команд цикла. Команда RTS (LR) гарантирует правильный повторный вход в цикл, предотвращая декремент счетчика циклов (дважды для одной и той же итерации цикла).
При возвращении из подпрограммы, в которую была сведена программа обработки прерывания командой JUMP (CI), должен использоваться модификатор (LR) команды RTS (в случае, если прерывание поступает в течение двух последних команд цикла).
Примеры : RTI, R6=R5 XOR R1; IF NOT GT RTS (DB); IF SZ RTS, ELSE R0=LSHIFT Rl BY R15.
Код операции: ( возврат из подпрограммы)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
000 | 01010 | COND | J | Е | LR |
22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 10
COMPUTE
Код операции: ( возврат из программы обработки прерывания)