Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Система команд и способы обращения к данным

Система команд процессора

В современных компьютерах основным устройством является процессор. Когда мы говорим слово «процессор», то, как правило, подразумеваем центральный процессор компьютера. Однако, кроме центрального процессора существуют специализированные процессоры, которые разработаны под отдельный спектр задач. Например, графический процессор видеокарты решает исключительно задачи ускорения трехмерной графики. У всех процессоров есть одно общее свойство: они умеют выполнять команды специального машинного языка. Машинный язык – это язык, который интерпретируется непосредственно процессором.

Не стоит путать машинный язык с высокоуровневыми языками программирования. Языки программирования не интерпретируются непосредственно процессором. Они гораздо ближе к человеческому естественному языку, а для их интерпретации нужны специальные «посредники», переводящие языки программирования на машинный язык.

Статья: Система команд и способы обращения к данным
Найди решение своей задачи среди 1 000 000 ответов

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

В систему команд входят:

  • разрешенные типы данных;
  • инструкции;
  • системы регистров;
  • методы адресации;
  • модели памяти;
  • способы обработки прерываний;
  • методы ввода и вывода.

Как правило, в систему команд любого процессора входят следующие основные команды:

  • команды передачи данных, которые копируют информацию из одного места в другое;
  • арифметические операции сложения и вычитания;
  • сдвиги двоичного кода влево и вправо (они используются при реализации умножения и деления);
  • логические операции сравнения, а так же операции И, ИЛИ, НЕ;
  • команды ввода-вывода, предназначенные для обмена информации с внешними устройствами;
  • команды управления, которые предназначены для организации перехода в любое нужное место программы в процессе ее выполнения.

Структура команды и обращение к данным

«Система команд и способы обращения к данным» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

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

Основу адресной части составляет операнд. Операнд – это сущность, над которой производится операция. Например, если мы применяем операцию «сложения» к двум числам $2$ и $3$, то $2$ и $3$ будут называться операндами. В зависимости от числа операндов, команды бывают:

  • одноадресными (например, увеличить или уменьшить значение операнда на $1$);
  • двухадресными (например, сложить два операнда и записать результат на место второго операнда, вычесть из первого операнда второй, сравнить значения двух операндов);
  • трехадресными (например, сложить два операнда, а результат записать в третий операнд);
  • безадресные (команда останова программы, возврат из программы).

При этом адресная часть тоже может быть устроена по-разному. В адресной части могут находиться:

  • сам операнд в явном виде;
  • адрес операнда в виде номера байта, начиная с которого расположен операнд;
  • адрес адреса операнда и т.д.
Замечание 1

Даже одна и та же команда сложения может быть организована и как одноадресная, и как двухадресная и как трехадресная. На первый взгляд, более естественно выглядит именно трехадресный вариант. Однако, это не совсем верно. Дело в том, что трехадресная команда должна содержать адреса трех ячеек. При больших объемах памяти эти три адреса будут занимать много места, и команда будет непомерно длинной. Поэтому трехадресные команды использовались в ранних ЭВМ, но позже были заменены на двухадресные и одноадресные.

Например, одноадресная команда сложения будет выглядеть примерно так:



Рисунок 1.

Здесь КОП – это код операции, а $x$ - адрес одной ячейки. Для реализации этой команды нужно чтобы в архитектуре процессора было специальное устройство – сумматор. Содержимое ячейки с адресом $x$ складывается с содержимым сумматора. Результат сложения остается в сумматоре и может быть использован для дальнейших вычислений. Двухадресная команда сложения выглядит вот так:



Рисунок 2.

В этом случае число из ячейки $x$ будет прибавлено к числу из ячейки y, а результат будет записан в ячейку $y$. А у трехадресной команды сложения будет три операнда:



Рисунок 3.

Команда извлечет значения из ячеек с адресами $x$ и $y$, сложит их и запишет в ячейку с адресом $z$.

Выполнение команды разбивается на следующие этапы:

  1. В счетчике команд хранится адрес ячейки, в которой хранится следующая команда. Содержимое счетчика при этом увеличивается на длину команды.
  2. Выбранная команда передается в управляющее устройство (УУ) на регистр команд.
  3. УУ расшифровывает адрес команды.
  4. УУ дает сигнал, после которого операнды считываются из памяти и записываются в специальные регистры операндов аримфметико-логического устройства (АЛУ).
  5. УУ расшифровывает код операции и дает АЛУ сигнал выполнить операцию.
  6. Результат операции либо остается в процессоре, либо записывается в память, если это предусмотрено командой.
  7. Этапы $1-6$ повторяются для следующей команды. Повторение продолжается до достижения команды «стоп».



Рисунок 4.

Воспользуйся нейросетью от Автор24
Не понимаешь, как писать работу?
Попробовать ИИ
Дата написания статьи: 21.04.2016
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot