Menu
Coddy logo textTech

Регистры против памяти

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

Теперь вы узнали о двух местах, где данные могут храниться внутри компьютера:

  • Регистры: крошечные ячейки хранения внутри CPU
  • Память (RAM): огромная сетка пронумерованных ячеек за пределами CPU

Но почему есть два места? Почему ЦП не может просто работать непосредственно с памятью?

Ответ — скорость. Регистры чрезвычайно быстры, потому что находятся внутри CPU. Память работает медленнее, потому что находится снаружи. CPU может получить доступ к регистру за один такт, но доступ к памяти занимает гораздо больше времени.

Сравнение бок о бок:

ХарактеристикаРегистрыПамять (RAM)
РасположениеВнутри CPUВне CPU
СкоростьЧрезвычайно высокая (1 цикл)Ниже (много циклов)
Количество ячеек храненияОчень мало (16–32 на x86-64)Миллионы или миллиарды
Размер каждой ячейки8 байт (64 бита)1 байт
Как к ним обращатьсяПо имени (rax, rbx, rcx...)По адресу (1000, msg, buffer)
Энергозависимая?Да (исчезает при отключении питания)Да (исчезает при отключении питания)

Самое важное правило в ассемблере:

ЦП не может работать непосредственно с данными в памяти. Сначала данные необходимо загрузить в регистры.

Это не является необязательным. Так устроен CPU. Каждое сложение, каждое сравнение, каждое перемещение данных должно проходить через регистр.

Трёхшаговый шаблон, который вы будете постоянно использовать:

ШагЧто происходитПример
1. LOADСкопировать данные из памяти в регистрmov rax, [count]
2. WORKВыполнить действие с регистромadd rax, 5
3. STOREСкопировать результат обратно в память (если необходимо)mov [result], rax

Что произойдёт, если вы забудете это правило?

Если вы попытаетесь сложить два числа, которые оба находятся в памяти, ассемблер выдаст ошибку. CPU просто не может этого сделать. Сначала вы должны загрузить их в регистры.

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

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

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

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

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

Потренируйтесь самостоятельно: Песочница Assembly