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

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

При выполнении команд загрузки (LW, LG, LB, ALW, ALB) аккумуляторов RW1, RB1, RG1 сначала производится копирование первого аккумулятора RW1, RB1, RG1 во второй RW2, RB2, RG2 соответственно, а затем уже в первый аккумулятор загружается указанный операнд.

При загрузке в словный аккумулятор RW1 байтного знакового операнда необходимо сразу после команды загрузки выполнить расширение загруженного операнда до слова командой KZRZ.

При загрузке байтного (EBх, ABх, МВх, DRx, DLx) или словного (EWx, AWx, MWx, DWx) операнда в вещественный аккумулятор RG1 операнд берется как знаковое целое число. При загрузке вещественного операнда (EGx, AGx, MGx, DGx) в аккумулятор RG1 операнд берется как короткое вещественное число (4 байта).

При передаче вещественного аккумулятора RG1 в байтную или словную переменную содержимое RG1 округляется до ближайшего знакового целого числа. Если полученное число входит в диапазон допустимых значений соответствующей переменной (-128...+127 для байтной; -32768...+32767 для словной), то CF=0, иначе в переменную заносится минимально или максимально возможное значение и CF=1. При передаче аккумулятора RG1 в вещественную переменную значение заносится в формате короткого вещественного числа.

Команды сохранения аккумуляторов (ASW, ASW2, ASB, ASB2) запоминают содержимое аккумулятора в специально выделенных ячейках памяти, а не в стеке. Поэтому последующее сохранение того же аккумулятора затирает предыдущее сохраненное значение.

1) LW - загрузка в аккумулятор RW1 байта или слова.

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

LW EBx

загрузка в аккумулятор RW1 байта отображения входов;

LW ABx

загрузка в аккумулятор RW1 байта отображения выходов;

LW MBх

загрузка в аккумулятор RW1 байта меток;

LW QBх

загрузка в аккумулятор RW1 байта расширенной периферии;

LW DRx

загрузка в аккумулятор RW1 правого байта слова данных;

LW DLx

загрузка в аккумулятор RW1 левого байта слова данных; (При загрузке EBx, ABx, MBx, QBx, DRx, DLx старший байт RW1 обнуляется)

LW PBх

загрузка в аккумулятор RW1 байта периферии;

LW EWx

загрузка в аккумулятор RW1 слова отображения входов;

LW AWx

загрузка в аккумулятор RW1 слова отображения выходов;

LW MWx

загрузка в аккумулятор RW1 слова меток;

LW Zx

загрузка в аккумулятор RW1 цифрового выхода счётчика;

LW Тх

загрузка в аккумулятор RW1 цифрового выхода таймера;

LW QWx

загрузка в аккумулятор RW1 слова расширенной периферии;

LW DWx

загрузка в аккумулятор RW1 слова данных;

LW КТххх.х

загрузка в аккумулятор RW1 словной константы в форме уставки таймера;

(ххх – количество дискрет: ххх.0 – дискретность 0.01 с;

ххх.1 – дискретность 0.1 с;

ххх.2 – дискретность 1 с;

ххх.3 – дискретность 10 с)

LW KZxxxx

загрузка в аккумулятор RW1 словной константы в форме уставки счётчика

LW KUxxxxx

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

LW КНхххх

загрузка в аккумулятор RW1 словной константы в шестнадцатиричном формате;

LW KFxxxxx

загрузка в аккумулятор RW1 словной знаковой константы в десятичном формате

LW KYxxx,xxx

загрузка в аккумулятор RW1 словной беззнаковой константы в формате двух десятичных чисел; (первое число - старший байт, второе число - младший байт)

LW КС'хх'

загрузка в аккумулятор RW1 словной константы в символьном формате; (первый символ - младший байт, второй символ - старший байт; если второй символ отсутствует, старший байт равен 0)

LW КВххх

загрузка в аккумулятор RW1 байтовой беззнаковой константы в десятичном формате (старший байт RW1 обнуляется)

LW КXхх

загрузка в аккумулятор RW1 байтовой константы в шестнадцатиричном формате (старший байт RW1 обнуляется)

LW =fo

загрузка в аккумулятор RW1 формального параметра (где fo может быть только: EBx, ABх, МВх, DRx, DLx, QВx, EWx, AWx, MWx, DWx, KB, KX, KT, KZ, KH, KF, KU, Zx, Тх. При загрузке параметров EBx, ABх, МВх, DRx, DLx, QВx, KB, KX старший байт RW1 обнуляется)

Формат индексной команды LW:

B DWx(MWx)

+LW EBx

B DWx(MWx)

+LW ABх

B DWx(MWx)

+LW MBх

B DWx(MWx)

+LW QBx

B DWx(MWx)

+LW DRx

B DWx(MWx)

+LW DLх

B DWx(MWx)

+LW EWх

B DWx(MWx)

+LW AWx

B DWx(MWx)

+LW MWx

B DWx(MWx)

+LW QWх

B DWx(MWx)

+LW DWх

B DWx(MWx)

+LW Zx

B DWx(MWx)

+LW Tx

где DWx(MWx) - номер слова данных или меток, содержащего индекс; х - номер байта или слова отображения входов или выходов (EB, AB, EW, AW), байта или слова меток (MB, MW), байта или слова расширенной периферии (QB, QW); байта или слова данных (DR, DL, DW); цифрового выхода счётчика или таймера (Z, T). При выполнении команды изменяются аккумуляторы RW1, RW2.

Во всех рассмотренных выше случаях применения команда LW “заканчивает опрос”.

2) LWA - загрузка в аккумулятор RW1 аккумулятора RW2.

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

Содержимое аккумулятора RW2 загружается в аккумулятор RW1. Команда изменяет аккумулятор RW1. Команда “заканчивает опрос”.

3) ALW - восстановление аккумулятора RW1.

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

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

4) ALW2 - восстановление аккумулятора RW2.

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

Запомненное командой ASW2 содержимое аккумулятора RW2 восстанавливается. Команда не меняет аккумуляторы и флаги. Команда “заканчивает опрос”.

5) XCWA - обмен аккумуляторов RW1 и RW2.

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

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

6) TW - передача (выгрузка) аккумулятора RW1.

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

TW EBх

передача младшего байта аккумулятора RW1 в байт отображения входов;

TW ABх

передача младшего байта аккумулятора RW1 в байт отображения выходов;

TW МBх

передача младшего байта аккумулятора RW1 в байт меток;

TW QBх

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

TW DRx

передача младшего байта аккумулятора RW1 в правый байт слова данных;

TW DLx

передача младшего байта аккумулятора RW1 в левый байт слова данных;

TW PBх

передача младшего байта аккумулятора RW1 в байт периферии;

TW EWx

передача аккумулятора RW1 в слово отображения входов;

TW Awx

передача аккумулятора RW1 в слово отображения выходов;

TW MWx

передача аккумулятора RW1 в слово меток;

TW QWx

передача аккумулятора RW1 в слово расширенной периферии;

TW DWx

передача аккумулятора RW1 в слово данных; TW =fo - передача младшего байта аккумулятора RW1 в формальный параметр (где fo только: EBx, ABх, MBх, DRx, DLx, QBx) или передача всего аккумулятора RW1 в формальный параметр (где fo только: EWx, AWx, MWx, DWx).

Формат индексной команды TW:

B DWx(MWx)

+TW EBx

B DWx(MWx)

+TW ABх

B DWx(MWx)

+TW MBх

B DWx(MWx)

+TW QBx

B DWx(MWx)

+TW DRx

B DWx(MWx)

+TW DLх

B DWx(MWx)

+TW EWх

B DWx(MWx)

+TW AWx

B DWx(MWx)

+TW MWx

B DWx(MWx)

+TW QWх

B DWx(MWx)

+TW DWх

где DWx(MWx) - номер слова данных или меток, содержащего индекс; х - номер байта или слова отображения входов или выходов (EB, AB, EW, AW), байта или слова меток (MB, MW), байта или слова расширенной периферии (QB, QW); байта или слова данных (DR, DL, DW).

Команда не меняет аккумуляторы и флаги.

Во всех рассмотренных выше случаях применения команда TW “заканчивает опрос”.

7) TWA - передача аккумулятора RW1 в аккумулятор RW2.

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

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

8) ASW - сохранение аккумулятора RW1.

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

Содержимое аккумулятора RW1 запоминается в специальной ячейке зарезервированной области памяти. Допустимо сохранение только одного состояния аккумулятора RW1. Команда не меняет аккумуляторы и флаги. Команда “заканчивает опрос”.

9) ASW2 - сохранение аккумулятора RW2.

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

Содержимое аккумулятора RW2 запоминается в специальной ячейке зарезервированной области памяти. Допустимо сохранение только одного состояния аккумулятора RW2. Команда не меняет аккумуляторы и флаги. Команда “заканчивает опрос”.

10) LG - загрузка в аккумулятор RG1 байта, слова, двойного слова.

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

LG Ebx

загрузка в аккумулятор RG1 байта отображения входов;

LG Abx

загрузка в аккумулятор RG1 байта отображения выходов;

LG МBх

загрузка в аккумулятор RG1 байта меток;

LG DRx

загрузка в аккумулятор RG1 правого байта слова данных;

LG DLx

загрузка в аккумулятор RG1 левого байта слова данных;

LG Ewx

загрузка в аккумулятор RG1 слова отображения входов;

LG Awx

загрузка в аккумулятор RG1 слова отображения выходов;

LG MWx

загрузка в аккумулятор RG1 слова меток;

LG DWx

загрузка в аккумулятор RG1 слова данных (при загрузке EBx, ABx, MBx, DRx, DLx, EWx, AWx, MWx, DWx операнд рассматривается как знаковое целое число)

LG Egx

загрузка в аккумулятор RG1 двойного слова отображения входов;

LG Agx

загрузка в аккумулятор RG1 двойного слова отображения выходов;

LG MGx

загрузка в аккумулятор RG1 двойного слова меток;

LG DGx

загрузка в аккумулятор RG1 двойного слова данных (при загрузке EGx, AGx, MGx, DGx операнд рассматривается как число с плавающей точкой)

LG KGx

загрузка в аккумулятор RG1 константы с плавающей точкой;

LG =fo

загрузка в аккумулятор RG1 формального параметра (где fo может быть только: EBх, ABх, МВх, DRx, DLx, EWx, AWx, MWx, DWx, EGx, AGx, MGx, DGx. Если для операндов EBх, ABх, МВх, DRx, DLx, EWx, AWx, MWx, DWx округленное значение аккумулятора RG1 вне диапазона, то CF=1, иначе CF=0)

Формат индексной команды LG:

B DWx(MWx)

+LG EBx

B DWx(MWx)

+LG ABх

B DWx(MWx)

+LG MBх

B DWx(MWx)

+LG DRx

B DWx(MWx)

+LG DLх

B DWx(MWx)

+LG EWх

B DWx(MWx)

+LG AWx

B DWx(MWx)

+LG MWx

B DWx(MWx)

+LG DWх

B DWx(MWx)

+LG Egх

B DWx(MWx)

+LG AGx

B DWx(MWx)

+LG MGx

B DWx(MWx)

+LG DGх

где DWx(MWx) - номер слова данных или меток, содержащего индекс; х - номер байта, слова или двойного слова отображения входов или выходов (EB, AB, EW, AW, EG, AG), байта, слова или двойного слова меток (MB, MW, MG), байта, слова или двойного слова данных (DR, DL, DW, DG).

При выполнении команды изменяются аккумуляторы LA, RW1, RW2, RG1, RG2, RB1, RB2 и флаги ZF, CF, SF, PF, OF.

Во всех рассмотренных выше случаях применения команда LG “заканчивает опрос”.

11) LGA - загрузка в аккумулятор RG1 аккумулятора RG2.

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

Содержимое аккумулятора RG2 загружается в аккумулятор RG1. Команда изменяет аккумулятор RG1. Команда “заканчивает опрос”.

12) XCGA - обмен аккумуляторов RG1 и RG2.

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

Аккумуляторы RG1 и RG2 обмениваются содержимым. Команда изменяет аккумуляторы RG1 и RG2. Команда “заканчивает опрос”.

13) TG - передача (выгрузка) аккумулятора RG1.

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

TG EBх

передача с округлением аккумулятора RG1 в байт отображения входов;

TG ABх

передача с округлением аккумулятора RG1 в байт отображения выходов;

TG МBх

передача с округлением аккумулятора RG1 в байт меток;

TG DRx

передача с округлением аккумулятора RG1 в правый байт слова данных;

TG DLx

передача с округлением аккумулятора RG1 в левый байт слова данных;

TG EWx

передача с округлением аккумулятора RG1 в слово отображения входов;

TG AWx

передача с округлением аккумулятора RG1 в слово отображения выходов;

TG MWx

передача с округлением аккумулятора RG1 в слово меток;

TG DWx

передача с округлением аккумулятора RG1 в слово данных (при передаче EBx, ABx, MBx, DRx, DLx, EWx, AWx, MWx, DWx операнд рассматривается как знаковое целое число. Если округленное значение аккумулятора RG1 вне диапазона, то CF=1, иначе CF=0)

TG EGx

передача аккумулятора RG1 в двойное слово отображения входов;

TG AGx

передача аккумулятора RG1 в двойное слово отображения выходов;

TG MGx

передача аккумулятора RG1 в двойное слово меток;

TG DGx

передача аккумулятора RG1 в двойное слово данных (при передаче EGx, AGx, MGx, DGx операнд рассматривается как число с плавающей точкой)

TG =fo

передача аккумулятора RG1 в формальный параметр (где fo: EBх, ABх, МBх, DRx, DLx, EWx, AWx, MWx, DWx, EGx, AGx, MGx, DGx. Если для операндов EBх, ABх, МBх, DRx, DLx, EWx, AWx, MWx, DWx округленное значение аккумулятора RG1 вне диапазона, то CF=1, иначе CF=0)

Формат индексной команды TG:

B DWx(MWx)

+TG EBx

B DWx(MWx)

+TG ABх

B DWx(MWx)

+TG MBх

B DWx(MWx)

+TG DRx

B DWx(MWx)

+TG DLх

B DWx(MWx)

+TG EWх

B DWx(MWx)

+TG AWx

B DWx(MWx)

+TG MWx

B DWx(MWx)

+TG DWх

B DWx(MWx)

+TG EGх

B DWx(MWx)

+TG AGx

B DWx(MWx)

+TG MGx

B DWx(MWx)

+TG DGх

где DWx(MWx) - номер слова данных или меток, содержащего индекс; х - номер байта, слова или двойного слова отображения входов или выходов (EB, AB, EW, AW, EG, AG), байта, слова или двойного слова меток (MB, MW, MG), байта, слова или двойного слова данных (DR, DL, DW, DG).

При выполнении команды изменяются аккумуляторы LA, RW1, RW2, RB1, RB2 и флаги ZF, CF, SF, PF, OF.

Во всех рассмотренных выше случаях применения команда LG “заканчивает опрос”.

14) TGA - передача аккумулятора RG1 в аккумулятор RG2.

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

Содержимое аккумулятора RG1 передается в RG2. Команда изменяет аккумулятор RG2. Команда “заканчивает опрос”.

15) LB - загрузка аккумулятора RB1 байтом.

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

LB EBх

загрузка в аккумулятор RB1 байта отображения входов;

LB ABх

загрузка в аккумулятор RB1 байта отображения выходов;

LB МBх

загрузка в аккумулятор RB1 байта меток;

LB QBх

загрузка в аккумулятор RB1 байта расширенной периферии;

LB DRx

загрузка в аккумулятор RB1 правого байта слова данных;

LB DLx

загрузка в аккумулятор RB1 левого байта слова данных;

LB PBх

загрузка в аккумулятор RB1 байта периферии;

LB КBххх

загрузка в аккумулятор RB1 байтовой беззнаковой константы в десятичном формате;

LB КХхх

загрузка в аккумулятор RB1 байтовой константы в шестнадцатиричном формате;

LB KC'х'

загрузка в аккумулятор RB1 байтовой константы в символьном формате;

LB =fo

загрузка в аккумулятор RB1 формального параметра; (где fo может быть только: EBх, ABх, МBх, QBx, DRx, DLx, KB, КХ)

Значение байтного операнда загружается в аккумулятор RB1. При этом изменяются аккумуляторы LA, RB1, RB2.

Формат индексной команды LB:

B DWx(MWx)

+LB EBх

B DWx(MWx)

+LB ABх

B DWx(MWx)

+LB МВх

B DWx(MWx)

+LB QBx

B DWx(MWx)

+LB DRx

B DWx(MWx)

+LB DLx

где DWx(MWx) - номер слова данных или меток, содержащего индекс; х - номер байта отображения входов или выходов, байта меток, байта расширенной периферии.

При выполнении команды изменяются регистры LA, RB1, RB2 и флаги ZF, CF, SF, PF, OF.

Во всех рассмотренных выше случаях применения команда LB “заканчивает опрос”.

16) LBA - загрузка аккумулятора RB2 в аккумулятор RB1.

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

Содержимое аккумулятора RB2 загружается в аккумулятор RB1. Изменяются аккумуляторы LA и RB1. Команда “заканчивает опрос”.

17) ALB - восстановление аккумулятора RB1.

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

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

18) ALB2 - восстановление аккумулятора RB2.

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

Запомненное командой ASB2 содержимое аккумулятора RB2 восстанавливается. Команда не меняет аккумуляторы и флаги. Команда “заканчивает опрос”.

19) XCBA - обмен аккумуляторов RB1 и RB2.

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

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

20) TB - передача (выгрузка) аккумулятора RB1.

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

ТВ EBх

передача аккумулятора RB1 в байт отображения входов;

ТВ ABх

передача аккумулятора RB1 в байт отображения выходов;

ТВ МBх

передача аккумулятора RB1 в байт меток;

ТВ QBx

передача аккумулятора RB1 в байт расширенной периферии;

ТВ DRx

передача аккумулятора RB1 в правый байт слова данных;

ТВ DLx

передача аккумулятора RB1 в левый байт слова данных;

ТВ PBх

передача аккумулятора RB1 в байт периферии;

ТВ =fo

передача аккумулятора RB1 в формальный параметр;

где х - номер байта; fo - формальный параметр (EBх, ABх, МВх, QBx, DRx, DLx).

Содержимое аккумулятора RB1 передается в байтный операнд. Команда не меняет аккумуляторы и флаги.

Формат индексной команды TB:

B DWx(MWx)

+TB EBх

B DWx(MWx)

+TB ABх

B DWx(MWx)

+TB МВх

B DWx(MWx)

+TB QBx

B DWx(MWx)

+TB DRx

B DWx(MWx)

+TB DLx

где DWx(MWx) - номер слова данных или меток, содержащего индекс; х - номер байта отображения входов или выходов, байта меток, байта расширенной периферии.

При выполнении команды изменяются флаги ZF, CF, SF, PF, OF.

Во всех рассмотренных выше случаях применения команда TB “заканчивает опрос”.

21) TBA - передача аккумулятора RB1 в аккумулятор RB2.

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

Содержимое аккумулятора RB1 передается в RB2. Команда изменяет аккумулятор RB2. Команда “заканчивает опрос”.

22) ASB - сохранение аккумулятора RB1.

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

Содержимое аккумулятора RB1 запоминается. Допустимо сохранение одного состояния аккумулятора RB1. Команда не меняет аккумуляторы и флаги. Команда “заканчивает опрос”.

23) ASB2 - сохранение аккумулятора RB2.

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

Содержимое аккумулятора RB2 запоминается. Допустимо сохранение одного состояния аккумулятора RB2. Команда не меняет аккумуляторы и флаги. Команда “заканчивает опрос”.