Косвенная адресация

Ранее были рассмотрены прямые способы адресации, когда:

1) номер объекта задается константой

QUEUE 2; Стать в очередь 2

SEIZE 1; Занять устройство 1

2) номер объекта задается СЧА

LEAVE PI; Освободить МКУ с номером, задаваемым параметром 1

Адресация может быть относительной и по отношению к само­му блоку. Это осуществляется при помощи записи *+/- n. Например,

TRANSFER,*+2

В этом случае сам блок TRANSFER является ориентировочным блоком. Транзакт пытается войти во второй, относительно блока TRANSFER, блок.

Подобные ссылки не зависят от свойств транзакта, обрабаты­ваемого в данный момент времени. Использование прямой адресации может привести к введению большого числа дополнительных блоков только для того, чтобы записать номера объектов в СЧА, т.е. к увели­чению объема модели. Существенным образом сократить объем мо­дели и использовать зависимость номеров объектов от свойств тран­зактов позволяет косвенная адресация.

Общий формат косвенной адресации:

C4A*CЧAj или СЧА*СЧА<имя>

Там, где допустимо использование СЧА, обычно могут исполь­зоваться и СЧА*СЧА.

При использовании косвенной адресации параметр Р может опускаться.

Пример 4.46

SEIZE P*X1

Занять устройство, номер которого содержится в параметре транзакта, а номер параметра определяется значением ячейки XI.

SAVEVALUE 1,Х*Р2

Поместить в ячейку с номером 1 значение, содержащееся в ячейке, номер которой определяется параметром 2.

Пример 4.47

FUNCTION RN1,D3; Функция распределения типов сообщений

0.2,1/0.5,2/0.999999,3

FUNCTION RN2,C20; Функция распределения числа символов

; сообщения типа 1

FUNCTION RN3,C20; Функция распределения числа символов

; сообщения типа 2

FUNCTION RN4,C20; Функция распределения числа символов

; сообщения типа 3

GENERATE 100,10


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



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