Команды пересылки

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: