Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ЭВМ (2).doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.39 Mб
Скачать

II. По наличию адресной информации

  1. Явные методы (в адресном поле содержится вся необходимая информация).

  2. Неявная адресации (адресная информация в команде отсутствует полностью или частично). В этом случае недостающая информация подразумевается – месторасположение операнда жестко определено для данной команды.

Например, imul var_1 (операция умножения, здесь расположение второго сомножителя располагается в регистре, куда и поместится результат выполнения) или cbw (convert by to word); Неявная адресация применяется во всех ВМ для сокращения длины команды.

III. По времени обращения (расположения операндов)

  1. Непосредственные операнды

  2. Регистровые операнды

  3. Операнды в памяти

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

IV. По способу формирования исполнительного адреса

  1. Абсолютная адресация. При абсолютной адресации исполнительный адрес извлекается целиком либо из адресного поля команды (при прямой адресации), либо из другой ячейки памяти (при косвенной адресации). Никаких преобразований адреса не происходит.

  2. Относительная адресация. Исполнительный адрес находится как сумма нескольких составляющих (как правило, не больше трех) – база, смещение и индекс.

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

Например, объявим одномерный массив Array db 1,2,3,4,5.

Поместим смещение в ВХ: lea BX,Array

mov AL,[BX]+3

Для многомерных массивов используется базово-индексная адресация. Физически элементы массива будут располагаться один за другим, как в одномерном массиве. В этом случае необходимо задать 2 смещения - смещение строки, которое будет являться базой, и индекс в строке.

mov AL, Array + [BX] + [SI]

Стековая адресация

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

Для работы со стеком доступны две основные команды: запись в стек (push - источник) источник –> стек; считать из стека (pop - приемник) приемник <– стек.

Существует два вида стека:

  • FIFO (First Input First Output) – считывается значение, первым записанное в стек.

  • LIFO (Last Input First Output) – считывается значение, последним записанное в стек.

На практике стек организуют на основе оперативной памяти и указателя стека. Для записи всегда доступна так называемая вершина стека.

Архитектура системы команд

Программное обеспечение создается в основном с помощью программирования на языках высокого уровня. Сами команды языков программирования высокого уровня удобны, но процессор выполняет простые операции и команды. Такую проблему стали называть семантическим разрывом. Перед разработчиками программного обеспечения встала задача уменьшить этот разрыв, что привело к созданию различных архитектур системы команд.

CISC-архитектура

(процессор с полным набором команд)

Целью разработки CISC-архитектуры стало создание универсального процессора, где машинные команды очень близки к операторам языка программирования высокого уровня. Это привело к тому, что система команд стала обширной (возросло количество команд), а сложность процессора значительно увеличилась.

Особенности структуры:

  • В процессоре присутствует небольшое количество регистров общего назначения

  • Наличие нескольких методов адресации

  • Различие форматов команд

  • Наличие команд, где обработка совмещается с обращением к памяти

Сложность и стоимость таких процессоров были достаточно велики, а производительность наоборот была небольшой. К тому же в результате исследований в 80-х годах выяснилось, что 80% времени выполнения процессором команд выполняются почти одни и те же команды, которые занимали около 20% от общего числа команд. Таким образом, оказалось, что использование CISC-архитектуры неэффективно и невыгодно. На смену ей пришла новая архитектура с сокращенным набором команд.

RISC-архитектура

(процессор с сокращенным набором команд)

В таких процессорах система команд была существенно сокращена за счет того, что были оставлены лишь наиболее часто используемые команды.

Особенности RISC-архитектуры:

  • Сокращено количество методов адресации (все операции обработки выполняются лишь над регистровыми операндами);

  • Обращение к памяти допустимо лишь с целью записи или чтения, что позволило разделить операции обработки данных и обращения к памяти;

Все это привело к упрощению команд, сокращению времени их выполнения (большинство команд обработки выполняются за один такт). Отсутствующие команды образуются за счет комбинаций имеющихся, и выполняются гораздо быстрее. Процессор становится более простым, дешевым и доступным. Но для того чтобы такой процессор работал эффективно, необходимо было увеличить количество регистров, которое могло исчисляться сотнями. Подобные процессоры выпускаются с 80-х годов.

MISC-процессор

(процессор с минимальным набором команд)

В таком процессоре команды выполняются параллельно, а каждый RISC-процессор еще более упрощается.