25. Косвенная адресация
25 - 6 Automating with STEP 7 in STL and SCL
Автоматизация посредством STEP 7
с использованием STL и SCL
25.2.1 Об щая инфо рмация
Косвенная адресация возможна только с использованием абсолютных
адресов. Вы не сможете применять косвенную адресацию с
использованием символьных адресов (Вы должны также иметь
возможност ь получать прямой доступ к отдельным элементам массива в
STL). Если Вы желаете иметь косвенный доступ к переменной, Вы должны
знать абсолютный адрес переменной. STL поддерживает прямой доступ к
переменным (см. следующую главу).
Абсолютная адресация может применяться как:
• непосредственная адресация (immediate addressing);
• прямая адресация (direct addressing);
• косвенная адресация (indirect addressing).
Адресация посредством параметров блока - особая форма косвенной
адресации: назначая фактические параметры параметрам блока, Вы
определяете адреса, которые будут обработаны во время выполнения
программы.
Мы имеем дело с непосредственной адресацией (immediate addressing),
когда численное значение (значение числа) задается непосредственно в
операторе. Примером непосредственной адресации могут служить
операция загрузки (load) значения константы в аккумулятор, операция
сдвига фиксированного значения, а также установка или сброс результата
логической операции посредством операций SET (УСТАНОВКА) и CLR
(ОЧИСТКА).
С помощью прямой адресации (direct addressing) Вы по лучаете прямой
доступ к а дресу, например, A I 1.2 или L MW 122. Значение, с которым Вы
хотите выполнить операцию, или значение, которое Вы хотите загрузить в
аккумулятор, расположено по указываемому адресу, то есть в ячейке
памяти. Вы адресуете данную ячейку памяти, указывая ее адрес
непосредственно в операторе STL.
С помощью косвенной адресации (indirect addressing) STL-выражение
указывает, где адрес может быть найден, вместо указания самого адреса.
Мы различаем два типа косвенной адресации, различие между которыми
определяется способом указания на адрес. Это:
• косвенная адресация посредством памяти (memory-indirect
addressing), которая использует адрес в системной памяти для
определения адреса; пример: в выражении T QW [MD 220] адрес слова
выхо дов, в которые должна быть сделана пересылка, размещен в
двойном слове меркеров MD 220;
• косвенная адресация посредством регистра (register-indirect
addressing), которая использует адресный регистр для о пределения
расположения адреса; пример: в выражении T QW [AR1,P#2.0] адрес
слова выходов, в которые должна быть сделана пересылка, нахо дится
на 2 байт а выше а дреса, размещенного в адресном регистре AR1.
Вы можете использовать косвенную а дресацию посредством регистра
(register-indirect addressing) в двух вариантах: как внутризонную
косвенную адресацию посредством регистра (area-internal register-
indirect addressing) и как межзонную косвенную ад ресацию посредством
регистра (area-crossing register-indirect addressing).