Cтраница 2
Компилятор ассемблера, преобразуя входную программу в объектную, просматривает ее команды в порядке сверху вниз н точно в таком же порядке вырабатывает соответствующие объектные команды. Как уже говорилось выше, машинная команда входной программы перерабатывается в двоичный код соответствующей команды процессора. Если же очередная команда входной программы - команда ассемблера DC, то компилятор вставляет в соответствующее место объектной программы двоичный код постоянной, описанной на поле операндов. Кроме того, если на поле имени команды расположен некоторый идентификатор, компилятор вносит этот идентификатор в таблицу имен, запоминая при этом расположение соответствующего байта по отношению к началу программы и некоторую дополнительную информацию, о которой мы скажем немного позже. [16]
Процесс ассемблирования. [17] |
Число управляющих секций во входной программе для одного ассемблирования зависит от ассемблера. Если допускается несколько секций, в языке ассемблера должны быть псевдокоманды для указания о переключении с одной управляющей секции на другую. [18]
Язык, на котором записывается входная программа для компилятора ( С. [19]
Однако вследствие того, что входная программа написана на машинно-независимом языке, который сильно отличается от объектного и не учитывает особенностей устройства конкретной машины, каждая из этих задач решается значительно сложнее, чем в ассемблере. [20]
В типичном логическом интерпретаторе процедуры входной программы будут храниться в памяти машины, для чего используется какая-либо схема индексирования. [21]
До сих пор мы рассматривали входную программу на языке ассемблера как последовательность предложений трех видов: машинных команд, команд ассемблера и макрокоманд, а компилятор с языка ассемблера - как некоторый программный автомат, который последовательно, в порядке их написания, анализирует предложения входной программы и также последовательно заменяет каждое предложение первого и третьего вида ( и некоторые второго вида) определенными двоичными кодами, представляющими команды и постоянные машинной программы. При этом ничего не говорилось, по каким правилам компилятор обрабатывает макрокоманды и как автор программы может влиять на этот процесс. [22]
Детранслятор - программа, преобразующая входную программу в машинном коде в выходную эквивалентную программу на языке программирования. [23]
Заметим также, что комментарий во входной программе на языке ассемблера можно размещать не только на поле комментария, но и занимать для него отдельные строки, в первых позициях которых написан символ звездочка. Примером могут служить пять строк в тексте нашего примера. В такой строке комментарием считается все, что расположено в позициях от 2 до 71 включительно. [24]
В каждом из этих случаев двоичная кодировка входной программы может быть разной. [25]
По указаниям управляющего блока блок анализа просматривает операторы входной программы, распознает их тип и определяет возможность немедленного выполнения. Информация о возможности выполнения оператора передается управляющему блоку, который вызывает соответствующую подпрограмму, исполняющую, действия, предписанные оператором. [26]
Окончание обработки обычно определяется по специальному признаку конца входной программы. [27]
Отладка каждого программного модуля; при обнаружении логических ошибок входная программа модифицируется, реассемблируется и проверяется заново. Может потребоваться несколько попыток. [28]
Такого рода сведения необходимы для построения любого цифрового компьютера и входной программы, поэтому модели должны быть практичными при вычислениях. Построение соответствующих гамильтонианов не требует знания всех вычислительных орбит модели. [29]
При байтовой организации памяти каждый байт содержит двоичный код символа входной программы. В этом случае символ доступен непосредственно. В остальных случаях в машинное слово-упаковывают несколько символов. Например, в 45-разрядную ячейку памяти машины М-220 упаковывают шесть семиразрядных кодов, представляющих символы в коде устройства подготовки перфокарт или в коде специального клавишного устройства. Здесь обработке очередного символа предшествует распаковка. [30]