![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
После компиляции используемая часть загружаемого модуля состоит из команд процессора, в которых указаны адреса операндов и действия над ними.
Для обеспечения перемещаемости программ в ОП существуют способы адресации операндов.
Машинный язык и его мнемонический вид – Ассемблер.
Адреса операндов могут быть указаны в явном и неявном виде. В явном загружаются в регистры процессора, доступные ОС. В неявном виде адресация происходит с использованием базовых регистров, индексных и смещения.
Формат команды память/память:
КОП B1 L1 D1 B2 L2 D2
КОП – код операции.
< B1> – номер регистра, содержащего базовый адрес первого операнда.
L1 – длина первого операнда в байтах.
D1 – смещение адреса операнда относительно базового.
Исполняемый адрес первого операнда:
A1=<B1>+D1
A2=<B2>+D2
Если выполнить команду:
mov A1(L1), A2(L2),
то перед ней: R1=<B>.
Базовый адрес – адрес начала модуля в ОП, который установлен загрузчиком модуля в ОП.
ОП.
![]() |
<X> – индексный регистр (для реализации циклов внутри программы).
В результате текст программы не меняется, так как при загрузке в модуль меняется только содержимое регистра, что обеспечивает независимость адресов операндов в исполнительном модуле от места его нахождения в ОП.
Возможна реализация индексных регистров.
В этом случае для реализации начала модуля используется базовый регистр, для цикла – индексный регистр.
КОП | A1 | X1 | D1 | B2 | X2 | D2 |
<X> - можно загрузить индекс начала массива для обеспечения поиска.
В общем случае команды бывают следующих форматов:
- регистр-регистр RR;
- регистр-индексируемая память RX;
- регистр-адрес RS;
- память-опреанд SI.
Каждая команда в системе команд процессора имеет код завершения.
Результат выполнения команды недействительной вызывает прерывание, и ОС обрабатывает прерывание и выводит. Программа завершила выполнение некоторой команды.
Дата публикования: 2015-06-12; Прочитано: 417 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!