Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №8.docx
Скачиваний:
1
Добавлен:
19.10.2022
Размер:
660.68 Кб
Скачать
  1. Что является данными для компилятора? Что получают в результате работы компилятора? Можно ли выполнить файл .Obj?

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

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

  1. Что такое компоновка программы? Ее функции?

Компоновка, редактирование связей (linking, linking editing) – это процесс сборки загрузочного модуля (исполняемого файла)  из полученных в результате раздельной компиляции объектных модулей с одновременным автоматическим поиском и присоединением библиотечных подпрограмм и процедур. В процессе компоновки программа собирается в единое целое непосредственно в оперативной памяти в файл, готовый к работе ( загрузочный модуль - файл  с расширением  .ехе).  

  1. Что такое компоновщик? Что делает? Что является данными для компоновщика?

Работу по компоновке программы выполняет программа компоновщик (linker). Эта программа выполняет следующие основные функции:

  • распределяет пространство оперативной памяти для программы;

  • связывает вместе части программы, представленные отдельными объектными модулями  (файлами  .obj);

  • настраивает адреса подготовленной программы, заменяя все относительные адреса, выработанные  компилятором, соответствующими абсолютными  адресами фактически распределенной памяти.

Компоновщики бывают в двух реализациях:

  • компоновщики,  которые готовят загрузочный файл;  этот файл при необходимости может быть загружен в оперативную память для исполнения;

  • компоновщики,  которые готовят загрузочный файл,  сразу физически размещают подготовленную версию машинного кода программы в памяти и передают управление на первую команду программы для непосредственного исполнения

  1. Можно ли выполнить файл .Exe?

Да

  1. Что такое препроцессор? Когда он работает? Его функции?

Центральная часть компьютера, выполняющая заданные программой преобразования информации и осуществляющая управление всем вычислительным процессом.

Процессор обрабатывает команды в четыре этапа, описанные Джоном фон Нейманом еще в 1945 году: Fetch, Decode, Fetch Operands и Execute.

Fetch: сначала из регистра командной строки в оперативной памяти считывается адрес следующей команды и загружается в накопитель команд.

Decode: декодер команд расшифровывает команду и активирует все схемы, необходимые для ее выполнения.

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

Execute: процесс выполняется. Это может быть, например, управление периферийным устройством, таким как принтер, или вычислительная операция в устройстве обработки информации. После завершения Execute цикл может начаться снова, то есть процессор приступает к обработке следующей команды.