суббота, 28 февраля 2026 г.

В каких случаях нельзя использовать регистры R0…R15 и почему

При программировании микроконтроллеров AVR на ассемблере новички часто не понимают, почему компилятор «ругается» на команду LDI R0, 5. Дело в архитектурном ограничении: система команд AVR использует 4 бита для адресации регистра в операциях с константами, что позволяет обратиться только к 16 регистрам из 32. Инженеры закрепили старший бит адреса в единицу, поэтому команды LDI, ANDI, ORI, SUBI и CPI работают исключительно с регистрами R16–R31. Младшие регистры R0–R15 лишены этой возможности, и для работы с константами им требуются команды-посредники, что увеличивает размер кода и снижает производительность. Читать далее

Комментариев нет:

Отправить комментарий