Node:W-выражения, Next:, Previous:Выражения, Up:MIXAL



W-выражения

Помимо описанных выше (see Выражения) выражений, ассемблер MIXAL может обрабатывать в качестве операндов директив ORIG, EQU, CON и END (see Директивы MIXAL) так называемые w-выражения. Общий вид w-выражения таков:

     WEXP = EXP[(EXP)][,WEXP]

где EXP обозначает выражение, а квадратные скобки отмечают необязательные элементы. Таким образом, w-выражение состоит из выражения, за которым следует необязательное выражение в круглых скобках, а затем любое число аналогичных конструкций, разделённых запятыми. Примеры w-выражений:

2000
235(3)
S1+3(S2),3000
S1,S2(3:5),23

W-выражения вычисляются слева направо следующим образом:

Ещё один пример - в w-выражении

1(1:2),66(4:5)

мы сначала возьмём два младших байта 1 (00 и 01) и поместим их в первую и вторую позицию результата (получая + 00 01 00 00 00), а потом возьмем два байта из 66 (01 и 02) и поместим их в четвёртую и пятую позиции результата, получая + 00 01 00 01 02 (262210). Процесс повторяется для каждого нового разделённого запятыми примера. Например,

1(1:1),2(2:2),3(3:3),4(4:4) = 01 02 03 04 00

Как указано выше, w-выражения могут встречаться только в операндах директив MIXAL, принимающих константное значений (ORIG, EQU, CON и END). Ссылки вперёд в w-выражениях не допускаются (т.е., все символы, встречающиеся в w-выражении должны быть определены до их использования).