Cтраница 3
Так составленный участок программы может быть впоследствии еще раз преобразован, уже к истинным адресам. При этом нужно будет пользоваться не локальным, а общим распределением памяти. Подобный переход от одних символических обозначений к другим целесообразен, в частности, если ранее составленную подпрограмму ( образец) мы хотим включить в другую, более обширную подпрограмму, образец для которой мы сейчас составляем, причем в этой новой подпрограмме все или часть символических обозначений отличаются от обозначений в прежнем образце. [31]
Биты 8 - 28, дополненные тремя младшими битами, равными нулю, формирует 24-битовый истинный адрес, определяющий начало таблицы страниц. [32]
Поле ин - декса байтов логического адреса используется без изменения в качестве младших битов истинного адреса. [33]
Строка, выбранная из таблицы страниц, определяет доступность страницы и содержит старшие биты истинного адреса. Доступность каждой страницы определяется содержимым бита действительности соответствующей страницы. Если этот бит равен единице, то фиксируется особый случай при переадресации страниц, и выполняемая элементарная операция аннулируется. Если содержимое битов 13 - 14 для 4К - байтовых страниц или бита 14 для 2К - байтовых страниц не равно нулю, то фиксируется особый случай по спецификации переадресации, и выполняемая операция подавляется. [34]
Применение мнемокода позволяет автоматизировать работу программиста по распределению памяти, точнее, по присваиванию истинных адресов. Это особенно полезно при программировании для машин с переменным форматом команд. Кроме того, мнемокод существенно облегчает работу по составлению больших программ, когда отдельные сегменты ( модули) программы составляются разными программистами и объединяются в единую программу на этапе загрузки. [35]
Объединение отдельных элементарных операторов в программу производят в процессе распределения памяти машины и присвоения истинных адресов. [36]
После составления и проверки программы в условных адресах распределяют память и устанавливают соответствие между условными и истинными адресами, а затем программу переписывают в действительных адресах. [37]
При вводе програм-мш, написанные в условных адресах или на мнемокоде, необходимо перевести в истинные адреса и машинные коды команд. Введенные программы и подпрограммы должны быть увязаны одна с другой. Во внешней - информации указываются носители программ и их коды, во внутренней - длина пппгпаммы, ее контпольная сумма и используемые ее внешние массивы и программы. [38]
Дальнейшее усовершенствование языка символического программирования заключается в том, что транслятору поручается не только присвоение истинных адресов, но и распределение памяти. [39]
Так, например, операция сложения двух чисел может быть выполнена следующим набором микроопераций: формирование истинных адресов операндов; передача истинных адресов операндов в адресный регистр; обращение к памяти за операндами; поразрядное сложение; выработка и добавление единиц переноса; отсылка результата сложения. [40]
Разновидностью такого рода служебных программ является программа, выполняющая и распределение памяти, и переход к истинным адресам. [41]
Предполагается, что такая интерпретация оператора не зависит от того, порождается ли машинный код в истинных адресах транслятором или же оператор выполняется в режиме интерпретации. Ключевую роль здесь играет избираемый способ присваивания значения в арифметическом операторе. В общем случае можно использовать любой из следующих двух подходов: 1) операциям приписываются определенные приоритеты и первыми выполняются операции с более высоким приоритетом или 2) операции в заданном выражении выполняются в последовательном порядке слева направо или справа налево независимо от приоритетов, приписанных символом операций. [42]
После доставления программ в буквенно-числеияой записи память машины распределяется между программой и числами, переписывается в истинных адресах и тем самым приводится к рабочему виду. [43]
Выбрав числовые значения А, В, К и L, можно переписать составленную программу в истинных адресах. [44]
Когда бит I строки в таблице сегментов является единицей, признак результата устанавливается в 1, а истинный адрес строки таблицы сегментов помещается в регистр, заданный полем RI. Когда бит I строки таблицы страниц является единицей, код признака результата устанавливается равным 2, а истинный адрес строки таблицы страниц помещается в регистр, заданный полем Ri. Если строка таблицы сегментов или таблицы страниц находится вне таблицы, то устанавливается признак результата 3, а регистр, заданный полем Ri, в этом случае содержит истинный адрес строки, к которой произошло бы обращение, если не имело-бы места нарушение длины. Во всех этих случаях 24-битовый адрес помещается на позиции 8 - 31 этого регистра, а левые 8 битов этого регистра устанавливаются в нуль. [45]