Cтраница 1
Прототип макроинструкции представляет собой конструкцию, совпадающую с конструкцией макроинструкции ( см. пример 6.15), которой соответствует макроопределение, с учетом следующих отличий: в теле первого элемента первой строки прототипа макроинструкции может содержаться либо последовательность символов и, либо элементарный символический адрес, первым символом в котором является &, называемый переменным символическим адресом. В теле третьего операнда записан тот же символический код макроинструкции, который указывается в макроинструкции, соответствующей данному макроопределению. [1]
Прототип макроинструкции представляет собой конструкцию, совпадающую с конструкцией макроинструкции ( см. пример 6.9), которой соответствует макроопределение, с учетом следующих отличий: в теле первого элемента первой строки прототипа макроинструкаии может содержаться либо последовательность символов Hull, либо элементарный символический адрес, первым символом в котором является ii& H, называемый переменным символическим адресом. В теле третьего операнда записан тот же символический код макроинструкции, который указывается в макроинструкции, соответствующей данному макроопределению. [2]
В более сложных случаях - при условной компиляции модель макроопределения между прототипом макроинструкции и действующими операторами содержит инструкции условной компиляции, которые задают некоторые функции с аргументами - символическими адресами - в макроинструкции и значениями, помещаемыми на месте переменных символических адресов в действующих операциях модели. Среди действующих операторов модели может также располагаться оператор, содержащий в теле третьего элемента строки слово MEXIT, означающее прекращение выполнения операторов макроопределения при его компиляции. [3]
Положение этого элементарного указателя в макроинструкции соответствует положению конструкции а в прототипе макроинструкции. При этом говорят, что происходит простая компиляция макроопределения. Если в прототипе макроинструкции какой-либо из элементарных указателей операндов имеет вид & NUM, то на таком же по порядку месте в указателе операндов макроинструкции размещается подсписок, а в действующих операторах модели должны встречаться конструкции вида & NUM ( /), где / - целое число, указывающее используемый в данном операторе элемент подсписка. [4]
В более сложных случаях - при условной компиляции - модель макроопределения между прототипом макроинструкции и действующими операторами содержит инструкции условной компиляции, которые задают некоторые функции с аргументами - символическими адресами - в макроинструкции и значениями, помещаемыми на месте переменных символических адресов в действующих операциях модели. Среди действующих операторов модели может также располагаться оператор, содержащий в теле третьего элемента строки слово ЦМЕХ1ТЦ, означающее прекращение выполнения операторов макроопределения при его компиляции. [5]
Макроопределение состоит из следующих частей: 1) оператора заголовка макроопределения, 2) оператора прототипа макроинструкции, 3) модели макроопределения, 4) оператора окончания макроопределения. [6]
Прототип макроинструкции представляет собой конструкцию, совпадающую с конструкцией макроинструкции ( см. пример 6.15), которой соответствует макроопределение, с учетом следующих отличий: в теле первого элемента первой строки прототипа макроинструкции может содержаться либо последовательность символов и, либо элементарный символический адрес, первым символом в котором является &, называемый переменным символическим адресом. В теле третьего операнда записан тот же символический код макроинструкции, который указывается в макроинструкции, соответствующей данному макроопределению. [7]
Модель макроопределения представляет собой последовательность действующих операторов языка ассемблера, среди которых имеют место операторы, содержащие в качестве своих символических адресов ( меток), либо символических обозначений, либо символических адресов операндов в указателях операндов слова такие, что переменные символические адреса, употребляемые в прототипе макроинструкции ( начинающиеся символом ll & li), являются вхождениями в эти слова. [8]
Положение этого элементарного указателя в макроинструкции соответствует положению конструкции а в прототипе макроинструкции. При этом говорят, что происходит простая компиляция макроопределения. Если в прототипе макроинструкции какой-либо из элементарных указателей операндов имеет вид & NUM, то на таком же по порядку месте в указателе операндов макроинструкции размещается подсписок, а в действующих операторах модели должны встречаться конструкции вида & NUM ( /), где / - целое число, указывающее используемый в данном операторе элемент подсписка. [9]
Способы выполнения такой замены могут быть различными. Простейшим случаем является подстановка на место переменного символического адреса а, начинающегося с li & il, элементарного указателя операнда ( или метки) из макроинструкции. Положение этого элементарного указателя в макроинструкции соответствует положению конструкции а в прототипе макроинструкции. При этом говорят, что происходит простая компиляция макроопределения. Если в прототипе макроинструкции какой-либо из элементарных указателей операндов имеет вид IJ & NUMII, то на таком же по порядку месте в указателе операндов макроинструкции размещается подсписок, а в действующих операторах модели должны встречаться конструкции вида ll & NUM ( li /), где / - целое число, указывающее используемый в данном операторе элемент подсписка. [10]
Способы выполнения такой замены могут быть различными. Простейшим случаем является подстановка на место переменного символического адреса а, начинающегося с li & il, элементарного указателя операнда ( или метки) из макроинструкции. Положение этого элементарного указателя в макроинструкции соответствует положению конструкции а в прототипе макроинструкции. При этом говорят, что происходит простая компиляция макроопределения. Если в прототипе макроинструкции какой-либо из элементарных указателей операндов имеет вид IJ & NUMII, то на таком же по порядку месте в указателе операндов макроинструкции размещается подсписок, а в действующих операторах модели должны встречаться конструкции вида ll & NUM ( li /), где / - целое число, указывающее используемый в данном операторе элемент подсписка. [11]