Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВОПРОСЫ К ЭКЗАМЕНУ ПО СПО.docx
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
42 Кб
Скачать
☆

10.Компилятор ассемблер-программ, редактор связей (загрузчик).

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

Следующий шаг – создание исполняемой программы. Сборкой всех частей программы занимается редактор связей. Он размещает все модули в памяти и настраивает адресные константы внутри них так, чтобы они соответствовали фактическому местоположению в памяти.

Редакторы бывают 3 разновидностей.

  1. Загрузчик – загружает объектный модуль и передает управление на точку входа программы.

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

  3. Компоновщик, генерирующий псевдоперемещаемый код – записывает в исполняемый файл таблицу перемещений (relocation table), где содержатся данные о ячейке внутри кода, которая зависит от местоположения в памяти. Такой исполняемый файл перед запуском программы требует настройки. Этим занимается операционная система, в формате которой создается исполняемый модуль.

11.Общая структура машинных команд.

  1. Операнды, которые используются в операторах ассемблера, могут быть регистром (г), адресом памяти (mem), непосредственным значением, задаваемым прямо в опе­раторе (imm), сегментным регистром (sr). В связи с этим существуют различные форматы одних и тех же команд:

  2. · первый и второй операнды - регистры. Результат помещается по адресу пер­вого операнда. Могут использоваться все регистры общего назначения.

  3. · первый операнд - регистр, второй - адрес памяти. Результат помещается в регистр, указанный в операторе, например:

  4. mov ах, DATA ; в регистр АХ помещается содержимое поля DATA

  5. · первый операнд - адрес памяти, второй - регистр. Результат помещается по тому адресу, который используется в качество первого операнда.

  6. · первый операнд - регистр, второй - непосредственные данные. Результат помещается в регистр.

  7. · первый операнд - адрес памяти, второй - непосредственные данные. Резуль­тат помещается по указанному адресу.

  8. · первый операнд - сегментный регистр, второй - регистр общего назначения. Результат помещается в сегментный регистр, причем задание регистра CS в таком формате команды не применяется.

  9. · первый операнд - регистр общего назначения, второй - сегментный регистр. Результат помещается в регистр общего назначения.

  10. Команды, работающие с одним операндом, могут работать с регистрами общего назначения, адресами памяти или с сегментными регистрами.

  11. Способы адресации операндов.В программах на Assembler применяются следующие типы адресации операндов:

  12. · регистровая;

  13. · прямая;

  14. · непосредственная;

  15. · косвенная;

  16. · базовая;

  17. · индексная;

  18. · базово-индексная.

  19. Регистровая адресация подразумевает использование в качестве операнда регистра процессора, например: push DS mov BP,SP

  20. При прямой адресации один операнд представляет собой адрес памяти, второй - регистр: mov DATA, АХ

  21. Непосредственная адресация применяется, когда операнд длиной в байт или сло­во находится в ассемблерной команде: mov AX,4Ch

  22. При использовании косвенной адресации исполнительный адрес формируется ис­ходя из сегментного адреса в одном из сегментных регистров и смещения в регистрах ВХ, ВР,SI или DI, например: mov АL, [ВХ], mov АН, [SI].

  23. В случае применения базовой адресации исполнительный адрес являетсй суммой значения смещения и содержимого регистра ВР или ВХ, например:

  24. mov АХ, [ВР + 6]

  25. mov [ВХ + Delta], АХ

  26. При индексной адресации исполнительный адрес определяется как сумма значе­ний указанного смещения и содержимого регистра SI или DI так же, как и при базо­вой адресации, например:

  27. mov DX, [SI+5]

  28. mov ES: [DI]+6, AL

  29. Базово-индексная адресация подразумевает использование для вычисления испол­нительного адреса суммы содержимого базового и индексного регистров, а также смещения, находящегося в операторе, например:

  30. mov ВХ, [BP][SI]

  31. mov ES:[BX+DI],AX

  32. Кэш-память– сверхоперативная память, обращение к которой намного быстрее, чем к оперативной и в которой хранятся наиболее часто используемые участки последней. При обращении к памяти сначала нужные данные ищутся в кэш-памяти. При отсутствии производится обращение к оперативной памяти, в результате общее время доступа к памяти сокращается.