Выбрать главу

Установка СОР на сумматор 00110000 Нет

Текущее содержимое сумматора игнорируется, и в него помещается величина относительного типа, равная текущему значению СОР.

Конец выражения 00110001 Нет

Текущее выражение окончено, при этом на сумматоре находится его значение.

Определение символов

Вообще говоря, символы должны декларироваться до их употребления, и именно описание связывает внутренний номер символа с его именем. Внутри любого данного модуля номера символов могут встречаться только один раз. Определения могут находиться в любом месте модуля. Имена символов допускаются любой длины от 0 до 255 литер. Имя любого символа состоит из поля длины (две цифры) и следующих за ним литер самого имени. В конце обработки модуля все имена, кроме внешних и имен в карте загрузки, надлежит из таблицы символов загрузчика исключить.

Определение внешнего символа 010lt000 Номер Выражение

Внешнему символу, номер которого задается первым аргументом, присваивается значение второго аргумента. Номер символа состоит из двух цифр при l = 0 или четырех цифр в противном случае. Если бит t равен 0, то символ абсолютный, в противном случае — относительный. Типы определяющего выражения и уже занесенного в таблицу символа (тип символа задается параметром t) должны совпадать. Во время определения любые ссылки на символ должны быть заполнены.

Определение символа в карте 0100t001 Имя Выражение

Выражение, представленное вторым аргументом, вычисляется и приписывается символу, имя которого указано в первом аргументе, для последующего помещения в карту загрузки. Если t = 0, то тип символа абсолютный, в противном случае — относительный.

Определение ссылки вперед 010lt01h Номер Выражение

Ссылке вперед, номер которой указан в первом аргументе, ставится в соответствие выражение, приведенное во втором аргументе. При l = 0 номер ссылки состоит из двух цифр, в противном случае — из четырех. Символ является абсолютным, если t = 0, и относительным в противном случае. Если h = 0, то ссылка вперед сохраняется в таблице символов, в противном случае после данного определения ссылка исключается из таблицы.

Описание внешней ссылки 011lt00p Номер Имя

Символ с именем, указанным в аргументе, и номером, приведенным в первом аргументе, декларируется как ссылка на внешний символ другого модуля. Если l = 0, номер символа состоит из двух цифр, в противном случае — из четырех. При t = 0 тип символа абсолютный, в противном случае — относительный. Равенство р = 0 означает, что ссылка первична и ее надлежит отыскать и заполнить; в противном случае ссылка вторична, и ее необходимо заполнять, лишь если символ определяется по другой причине.

Описание ссылки вперед 011lt010 Номер

Декларируется ссылка вперед на символ, номер которого указан в аргументе. Если l = 0, номер содержит две цифры, в противном случае — четыре. При t=0 символ абсолютный, в противном случае — относительный.

Описание внешнего имени 011lt011 Номер Имя

Символ с номером и именем, указанными соответственно в первом и втором аргументах, декларируется в качестве внешнего символа, который будет определен в данном модуле. Описания внешних имен должны располагаться в самом начале модуля. Если l = 0, то номер символа содержит две цифры, в противном случае — четыре. При t = 0 тип символа абсолютный, в противном случае — относительный.

Определение типов процедуры 011l0100 Номер N Тип1...ТипN

С символом, номер которого указан в первом аргументе, соотносится цепочка типов, длина которой задается двумя литерами второго аргумента. Если I = 0, то номер символа состоит из двух цифр, в противном случае — из четырех. Каждый тип представляется одной литерой. Чтобы определить символ, он должен быть уже описан в этом разделе как внешний. Данная команда, как и последующая, может употребляться компилятором Мини для проверки правильности количества и типов аргументов внешних процедур. В компиляторе необходимо установить способ представления возможных типов аргументов в виде целых чисел, которого надо придерживаться при всех трансляциях.

Проверка типов процедуры 011l0101 Номер N Тип1...ТипN

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