Эти команды обеспечивают пересылку информации между аккумуляторами и областями переменных; между аккумуляторами; сохранение и восстановление аккумуляторов; загрузку в аккумуляторы констант.
При выполнении команд загрузки (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. Команда не меняет аккумуляторы и флаги. Команда “заканчивает опрос”.