Эти свойства делают язык удобнее, но первостепенной задачей ассемблера является сборка программы в машинный код. Ассемблер превращает программу на языке ассемблера в объектный файл, представляющий собой комбинацию из инструкций на машинном языке, данных и информации, необходимой для правильного помещения инструкций в память.
Для создания двоичной версии каждой инструкции, имеющейся в программе на языке ассемблера, программа ассемблера должна определить адреса, соответствующие всем меткам.
Также вам может показаться, что такая тема как http://ubjd.ru/ никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт ubjd.ru. Тема азиатские шарнирные куклы bjd там представлена весьма широко. На том сайте можно узнать много интересного на тему азиатские шарнирные куклы bjd. Что означает вообще тема азиатские шарнирные куклы bjd, где найти азиатские шарнирные куклы bjd - про это написано на сайте ubjd.ru. Это очень важная для многих людей тема - азиатские шарнирные куклы bjd. Спасибо сайту ubjd.ru за информацию на тему азиатские шарнирные куклы bjd.
Ассемблер отслеживает метки, используемые в переходах и инструкциях переноса данных, в таблице имен. Нетрудно догадаться, что таблица состоит из пар обозначений и адресов.
Если все внешние ссылки разрешены, компоновщик определяет места в памяти для каждого модуля. Вспомним соглашение MIPS но распределению памяти под программы и данные, которое было показано на рис. 2.7. Поскольку файлы были ассемблированы в изоляции друг от друга, ассемблер может и не знать, куда должны быть помещены инструкции и данные модуля по отношению к другим модулям. Когда компоновщик помещает модуль в память, все абсолютные ссылки, то есть, адреса памяти, которые не связаны со значением ретстра, должны быть изменены, чтобы отражать реальное расположение модуля.
Нужно скомпоновать два, показанных ниже, объектных файла. Следует показать обновленные адреса первых нескольких инструкций полноценного исполняемого файла. Инструкции показываются на языке ассемблера только для того, чтобы сделать упражнение понятнее; в реальности инструкции будут представлены числами
Уточнение. Вспомним, что MIPS-инструкции выровнены по границам слов, поэтому инструкция Jal пропускает два правых разряда, чтобы расширить свой диапазон адресов. Таким образом, она использует 26 разрядов, чтобы создать 28-разрядный байтовый адрес. Следовательно, действительный адрес содержится в нижних 26 разрядах инструкции jal и имеет в данном примере значение 10 0040)в, а не 40 0100,6.
Динамически подключаемые библиотеки
Библиотечные процедуры становятся частью исполняемого кода. Если будет выпущена новая версия библиотеки, в которой будут устранены ошибки или осуществлена поддержка нового оборудования, статически скомпонованные программы будут по-прежнему использовать старую версию.
Он загружает все подпрограммы, имеющиеся в библиотеке, которые вызываются из любых мест исполняемой программы, даже если эти вызовы не состоятся. Относительно программы библиотека может занимать довольно большой объем: например, стандартная библиотека С имеет размер 2,5 Мбайт.
Эти недостатки привели к использованию динамически подключаемых библи- -ск — dynamically
При первом вызове библиотечной процедуры программа вызывает фиктивную запись и следует по косвенному переходу. Этот переход указывает на код, который помещает в регистр номер, позволяющий идентифицировать нужную библиотечную процедуру, а затем перейти к динамическому компоновщику-загрузчику. Этот компоновщик-загрузчик находит нужную процедуру, перенастраивает в ней все ссылки и изменяет адрес в косвенном переходе, помещая туда указатель на эту процедуру. Затем он передает управление процедуре. Когда процедура завершит свою работу, он возвращает управление в исходное место вызова. Впоследствии вызов библиотечной процедуры приведет к переходу непосредственно к процедуре
В общем, DLL-библиотеки требуют дополнительного пространства для информации, необходимой для динамической компоновки, но не требуют копирования или привязки целиком всех библиотек. І Іри первом вызове процедуры приходится смириться с существенными издержками, но зато впоследствии этот косвенный переход так и останется единственным.
Следует заметить, что возвращение из библиотеки дополнительных издержек не требует. Операционная система Windows корпорации Microsoft очень сильно зависит от динамически подключаемых библиотек, они также используются по умолчанию и при выполнении программ на современных UNIX-системах.
Опубликовал katy
June 26 2015 07:33:42 ·
0 Комментариев ·
2441 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.