Раздел: Документация
0 ... 30 31 32 33 34 35 36 ... 195 Регистры общего назначения Все регистры общего назначения объединены в регистровый файл быстрого доступа, структура которого показана на Рис. 2.16. Как было сказано выше, в микроконтроллерах AVR все 32 РОН непосредственно доступны АЛУ, в отличие от 8-битных микроконтроллеров других фирм, в которых имеется только один такой регистр — рабочий регистр W (аккумулятор). Благодаря этому любой РОН может использоваться практически во всех командах и как операнд-источник, и как операнд-приемник. Такое решение (в сочетании с конвейерной обработкой) позволяет АЛУ выполнять одну операцию (извлечение операндов из регистрового файла, выполнение команды и запись результата обратно в регистровый файл) за один такт. R0 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0 Адрес $00 $01 $02 $0D $0Е $0F $10 $11 $1А Регистр X, мл.байт $1В Регистр X, ст.байт $1С Регистр Y, мл.байт $1D Регистр Y, ст.байт $1Е Регистр Z, мл.байт $1F Регистр Z, ст.байт Рис. 2.16. Структура регистрового файла Последние 6 регистров файла (R26...R31) могут также объединяться в три 16-битных регистра X, Y и Z (см. Рис. 2.17), используемых в качестве указателей при косвенной адресации памяти данных. Подробно использо- Регистр X R27($1B) R26($1A) Регистр Y Регистр Z R29($1D) R28 ($1С) 15 R31 (S1F)R30 ($1Е) Рис. 2.17. Регистры-указатели X, Y и Z вание регистров-указателей, или индексных регистров, описано ниже (см. подраздел «Способы адресации памяти данных»). Как показано на Рис. 2.15, каждый регистр файла имеет свой собственный адрес в пространстве памяти данных. Поэтому к ним можно обращаться двумя способами — как к регистрам и как к памяти, несмотря на то, что физически эти регистры не являются ячейками ОЗУ. Такое решение является еще одной отличительной особенностью архитектуры AVR, повышающей эффективность работы микроконтроллера и его производительность. Регистры ввода/вывода Все регистры ввода/вывода условно можно разделить на две группы: служебные регистры микроконтроллера и регистры, относящиеся к конкретным периферийным устройствам (в том числе регистры портов ввода/вывода). Во всех микроконтроллерах AVR регистры ввода/вывода располагаются в так называемом пространстве ввода/вывода размером 64 байта. В большинстве моделей семейства Mega имеется также пространство дополнительных регистров ввода/вывода размером 160 или 416 байт. Введение дополнительных РВВ связано с тем, что для поддержки всех периферийных устройств, имеющихся в этих моделях, обычных 64-х РВВ недостаточно. Распределение адресов пространства ввода/вывода (как основного, так и дополнительного) зависит от конкретной модели микроконтроллера или, если точнее, от состава и возможностей периферийных устройств данной модели. Размещение РВВ в пространстве ввода/вывода для всех моделей семейства приведено в Табл. 2.1...2.11. В таблицах и далее в книге при указании адресов РВВ в скобках указываются соответствующие им адреса ячеек ОЗУ. Соответственно, если адрес регистра указывается только в скобках, этот регистр расположен в пространстве дополнительных РВВ. Если адрес в таблице не указан, это озна- чает, что для данной модели он зарезервирован, и запись по этому адресу запрещена (для совместимости с будущими моделями). Таблица 2.1. Регистры ввода/вывода моделей ATmega8x
0 ... 30 31 32 33 34 35 36 ... 195
|