1.1.1.1 |
|
|
|
|
|
|
|
|
СС1 |
|
|
|
RLDA |
||||
x |
1 0 0 0 |
0 1 0 1 |
0 1 0 1 |
0 0 0 0 |
0 1 1 1 |
1 0 0 0 |
0 1 1 1 |
1 1 1 1 |
1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 x
Рис. 14.4. Циклический сдвиг аккумулятора 1 на один разряд влево через бит CC 1 слова состояния
25. ОПЕРАЦИИ С БЛОКАМИ ДАННЫХ
Команда Открыть блок данных (OPN) используется для открытия блока данных как совместно используемого (глобального) блока данных или как экземплярного блока данных. Одновременно в программе могут быть открыты один глобальный блок данных и один экземплярный блок данных.
Область блока данных |
Максимальный диапазон адресов в соответствии с |
||
|
видом адресации |
||
|
Прямая |
|
Косвенная через память |
DB |
От 1 до 65 535 |
|
[DBW] от 1 до 65 534 |
DI |
|
|
[DIW] |
|
|
|
[LW] |
|
|
|
[MW] |
Команда Обменять глобальный DB и экземплярный DB (CDB) используется для обмена регистрами блоков данных. Глобальный блок данных становится экземплярным блоком данных и наоборот.
Следующие команды используются для загрузки в аккумулятор 1 длины (в байтах) или номера глобального или экземплярного блока данных:
L |
DBLG |
Загрузить длину глобального блока данных в аккумулятор 1 |
L |
DBNO |
Загрузить номер глобального блока данных в аккумулятор 1 |
L |
DILG |
Загрузить длину зкземплярного блока данных в аккумулятор 1 |
L |
DINO |
Загрузить номер экземплярного блока данных в аккумулятор 1 |
26. КОМАНДЫ ПЕРЕХОДА
Следующие команды перехода и организации циклического выполнения
120
используются для управления ходом выполнения программы, позволяя ей прерывать линейную процедуру выполнения, чтобы возобновить обработку с другого места. Операндом команды перехода и циклического исполнения является метка.
Команда |
Объяснение |
|
Команды безусловного перехода |
JU |
Перейти безусловно |
JL |
Перейти по списку |
Команды |
условного перехода с условием, зависящим от RLO |
JC |
Перейти, если RLO = 1 |
JCN |
Перейти, если RLO = 0 |
JCB |
Перейти, если RLO = 1 с сохранением RLO в BR |
JNB |
Перейти, если RLO = 0 с сохранением RLO в BR |
Команды условного перехода с условием, зависящим от BR или OV/OS |
|
JBI |
Перейти, если BR = 1 |
JNBI |
Перейти, если BR = 0 |
JO |
Перейти, если OV = 1 |
JOS |
Перейти, если OS = 1 |
Команды условного перехода с условием, зависящим от результата операции, |
|
|
закодированного в CC 1 и CC 0 |
JZ |
Перейти, если результат = 0 |
JN |
Перейти, если результат <> 0 |
JP |
Перейти, если результат > 0 |
JM |
Перейти, если результат < 0 |
JMZ |
Перейти, если результат <= 0 |
JPZ |
Перейти, если результат >= 0 |
JUO |
Перейти, если результат недействителен |
|
Циклическое управление |
LOOP |
Перейти, если содержимое аккумулятора 1 > 0 |
Метка перехода может служить операндом команды перехода или служить обозначением цели команды перехода. Она состоит не более чем из 4 символов. Первый символ должен быть буквой, а остальные символы могут быть буквами или числами (напр., SEG3). В качестве обозначения цели метка перехода должна, кроме того, завершаться двоеточием. В этом случае за меткой перехода всегда должна следовать команда (напр., SEG3: NOP 0).
121
26.1. КОМАНДЫ БЕЗУСЛОВНОГО ПЕРЕХОДА
Перейти безусловно: JU
Команда Перейти безусловно (JU) прерывает в программе нормальную последовательность логического управления и выполняет переход на метку (операнд команды JU). Метка отмечает точку, с которой программа должна продолжить свою работу. Переход выполняется независимо от каких-либо условий.
Перейти по списку: JL
Команда Перейти по списку (JL) представляет собой распределитель переходов. За ней следует ряд безусловных переходов на метки (см. рис. 16.1). Доступ к списку происходит через аккумулятор 1.
начало
Выбор в соответствии с номером сегмента
=0 =1 =2 =3 >3
Сегм. 0 |
|
Сегм. 1 |
|
Сегм. 3 |
|
|
|
|
|
Общая часть программы
конец
L MB100 Загрузить цель: 0 – выполнить
сегмент 0; 1 – выполнить сегмент 1; 2 или >3 − продолжить выполнение
основной программы; 3 – выполнить сегмент 3.
JL LIST
JU SEG0
JU SEG1 Распределитель переходов
JU COMM
JU SEG3
LIST: JU COMM
SEG0: |
● |
Сегмент 0 |
|
JU COMM |
|||
SEG1: |
● |
Сегмент 1 |
|
JU COMM |
|||
|
|||
SEG3: |
● |
Сегмент 3 |
|
JU COMM |
|||
|
|||
COMM: |
|
Общая часть программы |
|
Рис. 16.1. Управление ходом выполнения программы с помощью команды Перейти по списку JL
122
26.2. КОМАНДЫ УСЛОВНОГО ПЕРЕХОДА, ЗАВИСЯЩИЕ ОТ РЕЗУЛЬТАТА ЛОГИЧЕСКОЙ ОПЕРАЦИИ
Следующие команды перехода прерывают последовательность выполнения программы на основе результата логической операции (RLO), образованного предыдущим оператором:
•Перейти, если RLO = 1 (JC);
•Перейти, если RLO = 0 (JCN);
•Перейти, если RLO = 1 с сохранением RLO в BR (JCB): RLO сохраняется
вбите BR слова состояния;
•Перейти, если RLO = 0 с сохранением RLO в BR (JNB): RLO сохраняется
вбите BR слова состояния.
Следующие биты в слове состояния записываются независимо от исполнения перехода:
OR : = 0
STA : = 1
RLO : = 1
FC : = 0
начало |
|
|
|
|
|
|
|
I 0.0 = 1 и |
Нет, RLO=1 |
|
|
|
|
||
|
A I0.0 |
|
|||||
I 0.1 = 1 ? |
|
|
|
|
|
||
|
|
|
|
A |
I0.1 |
|
|
|
|
|
|
|
JCN COMM |
|
|
|
|
|
Раздел B |
|
|||
Да, RLO=0 |
|
|
|
L 0 |
Раздел B |
||
|
|
|
|
||||
|
|
|
|||||
|
|
|
|
T MB 10 |
|||
|
|
|
|
|
|
||
Общая часть программы |
|
|
|
|
COMM: |
• |
Общая |
|
|
|
|
|
|
• |
часть |
|
|
|
|
|
|
||
конец |
|
|
|
|
|
• |
програм |
|
|
|
|
|
|
мы |
|
|
|
|
|
|
|
|
|
Рис. 16.2. Управление выполнением программы |
|
||||||
с помощью команды JCN (Перейти, если RLO = 0) |
|
||||||
123
26.3. КОМАНДЫ УСЛОВНОГО ПЕРЕХОДА, ЗАВИСЯЩИЕ ОТ БИТОВ BR,
OV ИЛИ OS СЛОВА СОСТОЯНИЯ
Следующие команды перехода прерывают последовательность выполнения вашей программы на основе сигнального состояния бита в слове состояния
•Перейти, если BR = 1 (JBI) или Перейти, если BR = 0 (JNBI);
•Перейти, если OV = 1 ( JO) или Перейти, если OS = 1 (JOS).
Команды JBI и JNBI сбрасывают биты OR и FC слова состояния в 0 и устанавливают бит STA в 1. Команда JOS сбрасывает бит OS в 0.
начало
Сбросить бит
OS
Вычислить:
MW10 = MW12 + MW14
|
Результат с |
да |
|||
переполнением? |
|
|
|
||
|
нет |
|
|
|
|
|
Раздел C |
||||
|
Результат |
|
|
|
|
|
да |
||||
>= 0 ? |
|
|
|
|
|
|
нет |
|
|
|
|
|
|
|
|
|
|
|
Раздел A |
|
Раздел B |
|
|
|
|
|
|
|
|
Общая часть программы
JOS ODEL |
Сброс OS |
|
ODEL: L MW12 |
Вычисление |
|
|
L MW14 |
|
|
T MW10 |
|
JOS SECC |
|
|
JPZ SECB |
|
|
|
• |
|
|
• |
Раздел A |
|
• |
|
|
|
|
JU COMM |
|
|
SEGB: |
• |
|
|
• |
Раздел B |
|
• |
|
|
|
|
JU COMM |
|
|
SEGC: |
• |
|
|
• |
Раздел C |
|
• |
|
|
|
|
|
|
|
COMM: |
|
Общая |
|
|
часть |
|
|
программы |
конец
Рис. 16.2. Управление выполнением программы с помощью команды JOS (Перейти, если OS = 1)
124