Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

Шаг 2. Переходим от цифровой техники к микропроцессору и микроконтроллеру 61 Рабочие регистры Кроме регистра адреса, любой микропроцессор обязательно имеет несколько рабочих регистров (так называемых регистров общего назна ­ чения). Эти регистры наряду с ячейками памяти предназначены для хра ­ нения промежуточных результатов вычислений. Преимущество внутрен ­ них регистров для хранения данных перед памятью данных — в скорости доступа. При доступе к этим регистрам не нужно указывать адрес, как в случае с доступом к ячейке памяти. Так, команда записи в память состоит минимум из двух байт: кода операции и адреса ячейки памяти. Иногда для записи адреса одной ячейки не хватает. Если шина адреса процессора имеет 16 разрядов, то для адресации ячейки памяти потре ­ буется два байта. Поэтому такая команда будет содержать не менее трех байт. Команды, работающие с внутренними регистрами микропроцес ­ сора, обычно состоят из одного байта. Сам код операции содержит информацию о номере используемого регистра. Чтение и выполнение таких команд происходит гораздо быстрее. Кроме того, внешняя память часто сама имеет меньшее быстро ­ действие, чем процессор. Наличие нескольких внутренних регистров с быстрым доступом позволяет оптимально использовать память. Часто используемые данные стараются помещать в рабочие регистры. Микроконтроллеры серии AVR для хранения программ используют отдельную память, каждая ячейка которой состоит из одного шестнад ­ цатиразрядного слова. То есть каждая команда состоит минимум из двух байт. Эти два байта содержат и код операции, и параметры. Если двух байт не хватает, то добавляется еще два байта. То есть байты всегда чита ­ ются парами. Команды микропроцессора Теперь остановимся подробнее на выполняемых командах. Весь набор команд любого микропроцессора можно разделить на несколько групп. Первая группа — это команды перемещения данных. Повинуясь этим командам, процессор копирует содержимое одной ячейки памяти в другую, копирует информацию из ячейки памяти в один из внутренних регистров либо, наоборот, копирует содержимое регистра в одну из ячеек памяти. Кроме того, данные могут копироваться из одного внутреннего регистра в другой. Следует заметить, что так называемые команды перемещения, по сути, не перемещают данные из ячейки в ячейку, а копируют эти данные. Операция перемещения в цифровой технике бессмысленна. В общепри ­ нятом понимании переместить означает убрать из одного места и поме ­ стить в другое. Но убрать данные из ячейки памяти невозможно!

RkJQdWJsaXNoZXIy MTExODQxMg==