Menu
Coddy logo textTech

Как работают инструкции

Часть раздела Основы путешествия по Assembly на Coddy — урок 4 из 45.

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

Инструкции — это числа.

Это фундаментальная истина о компьютерах. Всё есть число. Данные, с которыми вы работаете (например, число 42), — это число. Адрес, по которому находятся данные (например, 1000), — это число. И сами инструкции (такие как mov, add, cmp) — это тоже числа.

Когда вы пишете код на ассемблере, такой как mov rax, 5, ассемблер преобразует этот человекочитаемый текст в число, которое понимает процессор. Это число называется кодом инструкции.

Где хранятся инструкции?

Инструкции хранятся в памяти точно так же, как и данные. Для инструкций нет какого-то специального места. Память содержит и то, и другое:

  • Данные (числа, символы, массивы)
  • Инструкции (сама программа)

Процессор не видит разницы. Он просто считывает то, что находится по адресу памяти, на который указывает счетчик команд (Program Counter). Вы кратко узнали о PC в уроке 0.1. Теперь пришло время понять, как именно он работает.

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

Цикл «выборка-исполнение»:

Процессор бесконечно повторяет эти три шага:

ШагЧто происходит
1. ВЫБОРКА (FETCH)Считать инструкцию по адресу в PC
2. ИСПОЛНЕНИЕ (EXECUTE)Выполнить эту инструкцию
3. ПЕРЕХОД (ADVANCE)Переместить PC к следующей инструкции

Простой пример:

Если PC = 1000, процессор:

  • Извлекает инструкцию по адресу 1000
  • Выполняет её
  • Перемещает PC к следующему адресу (1000 + размер инструкции)

Затем это повторяется с новым значением PC.

Как выглядит инструкция:

Каждая инструкция состоит из двух частей:

ЧастьЧто она делаетПример
ОпкодЧто СДЕЛАТЬmov, add, cmp
ОперандыНАД ЧЕМ это сделатьrax, 5, [result]

У некоторых инструкций один операнд (например, inc rax для прибавления 1). У некоторых — два (например, mov rax, 5). У некоторых — три (например, add rax, rbx, rcx в некоторых архитектурах).

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы