Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
73
Добавлен:
24.02.2016
Размер:
27.74 Mб
Скачать

3.8. Команды преобразования чисел

Команда Binary (см. рис. 3.21.а) преобразует значение двоично-десятичного кода в аккумуляторе в его двоичный эквивалент. Результат операции помещается в аккумулятор.

Команда Binary Coded Decimal (см. рис. 3.21.б) преобразует двоичное число в аккумуляторе в эквивалентное значение двоично-десятичного кода. Результат операции помещается в аккумулятор.

Команда Invert (см. рис. 3.21.в) инвертирует (берет поразрядное “дополнение до 10“) 32-х разрядное число в аккумуляторе.

Команда Ten’s Complement (см. рис. 3.21.г) берет дополнение до 10 двоично-десятичный код из 8-и разрядов аккумулятора. Результат операции загружается в аккумулятор. Эта команда проводит вычисление по следующей схеме:

100000000

значение в аккумуляторе

дополнение до 10

Рис. 3.21. Обозначение команд преобразования чисел

3.9. Команды, контролирующие работу цп.

Команда No Operation (см. рис. 3.22.а) является “пустой” командой. Это означает, что соответствующая ей позиция памяти пуста.

Команда End (см. рис. 3.22.б) завершает работу программы (указывает точку завершения нормального сканирования программы). В случае отсутствия команды End, происходит ошибка и ЦП не может перейти в режим RUN. Метки данных (data labels), подпрограммы, подпрограммы прерывания располагаются после команды End. Данная команда не является условным выражением, поэтому для нее не требуется присутствие входного контакта.

Команда Stop (см. рис. 3.22.в) переключает ЦП из режима работы RUN в режим Program. Данная команда используется для остановки выполнения операций ЦП в случае отказа входного/выходного модуля.

Рис. 3.22. Обозначение команд, контролирующих работу ЦП

3.10. Команды контроля программы.

К

Рис. 3.23. Обозначение команды Goto/Label

оманда Goto/Label (см. рис. 3.23.) позволяет пропускать выполнение всех команд между командой Goto и парной ей командой LBL. Операнд (Кааа) у команды Goto и соответствующей ей команды LBL один и тот же. В программе можно использовать 128 команд Goto и 64 команды LBL.

Рис. 3.24. Обозначение команды For/Next

Команды For/Next (см. рис. 3.24.) используются для выполнения определенного количества раз (определяется операндом Аааа) секции лестничной логики, заключенной между командами For и Next (тело цикла). Как только команда For будет активизирована, начнется выполнения тела цикла. В противном случае, команды, определяющие тело цикла, не выполнятся.

DirectSOFT не допускает вложенных циклов. Всего в программе может присутствовать 64 цикла For/Next. Если число используемых циклов в программе больше установленного, то ЦП выдаст сообщение об ошибке Е413 /3/.

3.11. Команды операций с таблицами данных

К

Рис. 3.25. Обозначение команды Move

оманда Move(см. рис.3.25.) перемещает значения из фиксированного числа последовательных ячеек V-памяти в другие последовательные ячейки V-памяти. Операнд (Vaaa) определяет конечное местоположение (место вставки) в памяти последовательности переносимых ячеек. Для организации такого

перемещения необходимо указать, при помощи двух дополнительных команд, следующие функциональные параметры: число и начальное местоположение в памяти переносимых ячеек. Эти параметры загружаются на первый уровень стека аккумулятора и в аккумулятор.

К

Рис. 3.26. Обозначение команды Move Memory Cartridge

оманда Move Memory Cartridge (см. рис. 3.26.) используется для копирования данных между V-памятью и программной памятью. Для организации такого копирования необходимо, при помощи двух дополнительных команд, указать функциональные параметры, которые загружаются в аккумулятор и в два первых уровня его стека. Если команда обратится к данным, которые не принадлежат области, на которую указывает

используемая метка, то активизируется дискретный бит флага SP53.

Команда Load Labelиспользуется с командой MOVMC в том случае, если копируются данные из программной памяти в V-память (память данных).

Шаги программирования функции копирования данных между V-памятью и программной памятью:

Шаг 1. Во второй уровень стека аккумулятора загружается число слов, которые будут скопированы.

Шаг 2. В первый уровень стека аккумулятора загружается смещение для метки области данных в программной памяти и для начала переносимого блока V-памяти (последовательность переносимых ячеек).

Шаг 3. Для копирования данных из программной памяти в V-память, в аккумулятор загружается метка области данных (LDLBL Kaaa). Для копирования данных из V-памяти в программную память, в аккумулятор загружается начальное местоположение в памяти последовательности переносимых ячеек (ячейка V-памяти). В последнем случае функциональный параметр должен быть представлен в шестнадцатеричной системе счисления.

Шаг 4. Используется команда MOVMC, которая определяет место вставки переносимых данных. В зависимости от того, куда копируются данные, операнд может быть либо меткой области данных, либо ячейкой памяти. В последнем случае физический параметр должен быть представлен в шестнадцатеричной системе счисления /3/.