Материал: Основы программирования микроконтроллеров на языке step 7. Слепокуров Ю.С

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Смотрите также:

12
1673
271
2863
2994
3788
3857
54
5719
605