Читайте также:
|
|
Глава 4. Представление машинных команд. Загрузка программ.
Машинные команды. Загрузочный модуль
Команда процессора состоит из кода операции и одного или нескольких операндов (объектов, над которыми выполняется операция). В зависимости от числа операндов, команды делятся на безадресные (не имеющие операндов или имеющие неявно указанные), одноадресные ( производящие действие над одним объектом или одним явно и несколькими неявно указанными), двух- и трехадресные. Встречаются архитектуры, у которых есть команды и с большим числом операндов, но это чрезвычайно редко. Операнды располагаются по адресам оперативной памяти, а также в регистрах.
Регистры.
Все процессоры имеют как минимум 6 системных регистров: для адреса текущей команды (счетчик команд), регистр флагов, где хранятся коды арифметических условий и, кроме того, много другой служебной информации (слово состояния процессора), три буферных регистр АЛУ и буферный регистр, в котором хранится текущая команда.
Программисту доступны только счетчик команд и слово состояния процессора. Регистры, доступные программисту для хранения данных, называются регистрами общего назначения. У современного процессора количество регистров общего назначения измеряется сотнями и даже тысячами. При наличии большого количества регистров существует два подхода к их выбору:
Использование регистров в машинных командах в качестве операндов позволяет значительно ускорить процесс обработки.
Адреса памяти.
С точки зрения процессора, оперативная память представляет собой массив пронумерованных ячеек. Разрядность адреса является важной характеристикой процессора, определяя объем адресуемой памяти. Различают физическую адресацию - нумерация ячеек памяти фиксированная, одна и та же ячейка всегда имеет один и тот же номер. Адрес при этом разбит на битовые поля, которые непосредственно используются в качестве номера физической микросхемы памяти, и номеров строки и столбца в этой микросхеме. Напротив, большинство современных процессоров общего назначения используют виртуальную адресацию, когда номер конкретной ячейки определяется не физическим размещением этой ячейки, а контекстом, в котором происходит адресация.
В современных компьютерах единицей адресации оперативной памяти является байт.
Операнды команд могут быть как регистрами, так и ячейками памяти. Некоторые архитектуры допускают произвольное сочетание регистров и ячеек в одной команде (PDP-11, VAX). В других архитектурах, например, х86 и МС680х0 только один операнд может размещаться в памяти, а второй всегда обязан быть регистром. У RISC-процессоров арифметические операции разрешены только над регистрами, а для обращений к памяти выделены специальные команды.
В зависимости от подхода, применяемого в конкретной системе команд, архитектуры подразделяются на память-память, регистр-память, регистр-регистр (SS, RR, RS).
Код операции | Память (S) | Память (S) |
Код операции | Регистр (R) | Память (S) |
Код операции | Регистр (R) | Регистр (R) |
Совершенно неверно, что единственным способом указания адреса операнда в памяти является помещение этого адреса в адресное поле команды. В зависимости от режима адресации, адрес операнда может вычисляться различными, иногда довольно сложными способами, с учетом значений одного или нескольких регистров, как с использованием адресного поля, так и без него.
Режимы адресации
Большинство современных процессоров поддерживают многочисленные режимы адресации.
Можно дать следующее определение программы с точки зрения компьютера.
Программа – это результат компиляции исходного текста программы, структура загрузочного модуля создается компилятором.
Пример структуры загрузочного модуля (упрощенный вариант раннего Unix):
где
Дата добавления: 2015-01-30; просмотров: 24 | Поможем написать вашу работу | Нарушение авторских прав |