Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Типы операций.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
113.66 Кб
Скачать

Типы операций

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

• операции передачи данных;

• арифметические операции;

• логические операции;

• операции ввода-вывода;

• операции SIMD;

• операции управления состоянием системы;

• операции управления ходом выполнения программы.

Операции передачи данных

Наименование операции

Описание

Перемещение (MOV)

Передача слова или блока данных от источника к приемнику

Сохранение (ST)

Передача слова из регистра процессора в память

Загрузка (извлечение) LD

Передача слова из памяти в регистр процессора

Обмен

Взаимный обмен данными между источником и приемником

Очистка (начальная установка, сброс) (CLR)

Передача слова, состоящего из всех нулей, в приемник

Установка (SET)

Передача слова, состоящего из всех единиц в приемник

Запись в стек (PUSH)

Передача слова из источника в верхнюю ячейку стека

Извлечение из стека (POP)

Передача слова из верхней ячейки стека в приемник

В командах передачи данных должны быть специфицированы несколько параметров.

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

Во-вторых, должен быть задан объем передаваемых данных.

В-третьих, как и во всех прочих командах, адресующих операнды, необходимо специфицировать метод адресации.

Проблема выбора количества и специфики команд передачи данных, включаемых в набор команд процессора, — это всегда поиск определенного компромисса. Например, место расположения операнда — в памяти или в регистре — можно специфицировать либо в поле кода операции, либо в поле ссылки на операнд. Так, в системе команд ЭВМ семейства IBM S/370 насчитывается 12 инструкций передачи данных. Передача данных различной разрядности (8, 16, 32 или 64 бит) осуществляется разными инструкциями. Кроме того, передача регистр-регистр, регистр-память и память-регистр также выполняется командами с разными кодами операций. Например, LH - загрузка полуслова (16 бит) из памяти в регистр, STE - пересылка числа в формате с плавающей точкой из регистра в память). В вычислительных системах семейства VAX используется совсем другой подход. В архитектуре этого семейства предусмотрен единственный код операции MOV для всех команд пересылки, а в поле ссылки на операнд специфицируется, где именно находится операнд — в памяти или в регистре.

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

1. Вычислить адрес в памяти в соответствии с заданным в команде методом адресации.

2. Если адрес виртуальный, преобразовать его в физический адрес.

3. Определить, не находится ли адресуемый элемент данных в кэше.

4. Если нет, обратиться к блоку оперативной памяти.