Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метода S300.doc
Скачиваний:
54
Добавлен:
28.05.2015
Размер:
1.45 Mб
Скачать
    1. Логические байтовые и словные команды

Эти команды позволяют проводить логическую обработку многоразрядных операндов. Команды, работающие с байтовыми аккумуляторами RB1 и RB2, введены для совместимости с системой команд контроллеров С100, С200 и не рекомендуются к использованию в новых программах.

1) UW - логическое поразрядное умножение аккумуляторов RW1 и RW2.

Формат команды: UW.

Выполняется побитная функция И аккумуляторов RW1 и RW2. Результат помещается в RW1. Если результат равен 0, то флаг ZF устанавливается в 1, иначе сбрасывается в 0. Флаги CF, OF сбрасываются в 0. Команда изменяет аккумулятор RW1 и флаги ZF, CF, SF, PF, OF. Команда “заканчивает опрос”.

2) OW - логическое поразрядное сложение аккумуляторов RW1 и RW2.

Формат команды: OW.

Выполняется побитная функция ИЛИ аккумуляторов RW1 и RW2. Результат помещается в RW1. Если результат равен 0, то флаг ZF устанавливается в 1, иначе сбрасывается в 0. Флаги CF, OF сбрасываются в 0. Команда изменяет аккумулятор RW1 и флаги ZF, CF, SF, PF, OF. Команда “заканчивает опрос”.

3) XOW - логическое поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ RW1 и RW2.

Формат команды: XOW.

Выполняется побитная функция ИСКЛЮЧАЮЩЕЕ ИЛИ (сложение по модулю 2) аккумуляторов RW1 и RW2. Результат помещается в RW1. Если результат равен 0, то флаг ZF устанавливается в 1, иначе сбрасывается в 0. Флаги CF, OF сбрасываются в 0. Команда изменяет аккумулятор RW1 и флаги ZF, CF, SF, PF, OF. Команда “заканчивает опрос”.

4) KEW - инвертирование аккумулятора RW1.

Формат команды: KEW.

Каждый бит аккумулятора RW1 инвертируется и помещается в RW1. Команда изменяет аккумулятор RW1. Команда “заканчивает опрос”.

5) UB - логическое поразрядное умножение аккумуляторов RB1 и RB2.

Формат команды: UB.

Выполняется побитная функция И аккумуляторов RB1 и RB2. Результат помещается в RB1. Если результат равен 0, то флаг ZF устанавливается в 1, иначе сбрасывается в 0. Флаги CF, OF сбрасываются в 0. Команда изменяет аккумулятор RB1 и флаги ZF, CF, SF, PF, OF. Команда “заканчивает опрос”.

6) OB - логическое поразрядное сложение аккумуляторов RB1 и RB2.

Формат команды: OB.

Выполняется побитная функция ИЛИ аккумуляторов RB1 и RB2. Результат помещается в RB1. Если результат равен 0, то флаг ZF устанавливается в 1, иначе сбрасывается в 0. Флаги CF, OF сбрасываются в 0. Команда изменяет аккумулятор RB1 и флаги ZF, CF, SF, PF, OF. Команда “заканчивает опрос”.

7) XOB - логическое поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ RB1 и RB2.

Формат команды: XOB.

Выполняется побитная функция ИСКЛЮЧАЮЩЕЕ ИЛИ (сложение по модулю 2) аккумуляторов RB1 и RB2. Результат помещается в RB1. Если результат равен 0, то флаг ZF устанавливается в 1, иначе сбрасывается в 0. Флаги CF, OF сбрасываются в 0. Команда изменяет аккумулятор RB1 и флаги ZF, CF, SF, PF, OF. Команда “заканчивает опрос”.

8) KEB - инвертирование аккумулятора RB1.

Формат команды: KEB.

Каждый бит аккумулятора RB1 инвертируется и помещается в RB1. Команда изменяет аккумуляторы RB1 и LA. Команда “заканчивает опрос”.

    1. Байтовые и словные команды сдвига

Команды сдвига осуществляют арифметический и циклический сдвиги аккумуляторов.

1) SRW - арифметический сдвиг аккумулятора RW1 вправо.

Формат команды:

SRW - арифметический сдвиг аккумулятора RW1 вправо на 1 бит;

SRW n - арифметический сдвиг аккумулятора RW1 вправо на n бит; где n = 0...255.

Аккумулятор RW1 сдвигается на один (или n) бит вправо с обнулением левого (или n левых) бита/битов. Последний выдвинутый бит переносится во флаг CF. Команда изменяет аккумулятор RW1 и флаг CF. Команда “заканчивает опрос”.

2) SLW - арифметический сдвиг аккумулятора RW1 влево.

Формат команды:

SLW - арифметический сдвиг аккумулятора RW1 влево на 1 бит;

SLW n - арифметический сдвиг аккумулятора RW1 влево на n бит, где n = 0...255.

Аккумулятор RW1 сдвигается на один (или n) бит влево с обнулением правого (или n правых) бита/битов. Последний выдвинутый бит переносится во флаг CF. Команда изменяет аккумулятор RW1 и флаг CF. Команда “заканчивает опрос”.

3) RRW - циклический сдвиг аккумулятора RW1 вправо.

Формат команды: RRW n, где: n = 0...255.

Аккумулятор RW1 сдвигается на n бит вправо. Выдвигаемые вправо биты переносятся в левые биты. Последний выдвинутый вправо бит переносится также и в CF. Команда изменяет аккумулятор RW1 и флаг CF. Команда “заканчивает опрос”.

4) RLW - циклический сдвиг аккумулятора RW1 влево.

Формат команды: RLW n, где: n = 0...255.

Аккумулятор RW1 сдвигается на n бит влево. Выдвигаемые влево биты переносятся в правые биты. Последний выдвинутый влево бит переносится также и в CF. Команда изменяет аккумулятор RW1 и флаг CF. Команда “заканчивает опрос”.

5) SRB - арифметический сдвиг аккумулятора RB1 вправо.

Формат команды: SRB.

Аккумулятор RB1 сдвигается на один бит вправо с обнулением левого бита. Выдвигаемый вправо бит переносится во флаг CF. Команда изменяет аккумуляторы LA, RB1 и флаг CF. Команда “заканчивает опрос”.

6) SLB - арифметический сдвиг аккумулятора RB1 вправо.

Формат команды: SLB.

Аккумулятор RB1 сдвигается на один бит влево с обнулением правого бита. Выдвигаемый влево бит переносится во флаг CF. Команда изменяет аккумуляторы LA, RB1 и флаг CF. Команда “заканчивает опрос”.

7) RRC - циклический сдвиг аккумулятора RB1 вправо.

Формат команды: RRC.

Аккумулятор RB1 сдвигается вправо на один бит. Выдвигаемый вправо бит переносится в левый (старший) бит и, одновременно, в CF. Команда изменяет аккумуляторы LA, RB1 и флаг CF. Команда “заканчивает опрос”.

8) RLC - циклический сдвиг аккумулятора RB1 влево.

Формат команды: RLC.

Аккумулятор RB1 сдвигается влево на один бит. Выдвигаемый влево бит переносится в правый (младший) бит и, одновременно, в CF. Команда изменяет аккумуляторы LA, RB1 и флаг CF. Команда “заканчивает опрос”.