РСФ - регистры специальных функций (порты, управление и прочие начиная с адреса 0x20 и до первых ячеек ОЗУ данных).
Они же (область РСФ) доступны также и как пространство ввода-вывода командами in и out.
К регистру управления можно обратится или как к УВВ (командами in и out) или как к области памяти командами работы с памятью LD/ST , но тогда к имени регистра добавляем 0x20 к примеру
in r16,portb = lds r16,(portb+0x20) /исправил
Как область памяти ОЗУ могут также адресоваться и регистры регистрового банка R0-R31.
Помимо того для регистров R0-R31 предусмотрены специальные скоростные пересылки регистр-регистр (mov r,r) и регистровая пара-регистровая пара (movw rp,rp), что весьма удобно при скоростном копировании блоков рабочих регистров.
Такой вариант - скоростное хранение выборочного количества данных и называется "теневым стеком" - правда само название позаимствовано у ПИКов - там это аппаратный модуль, работающий по прерываниям, но сам принцип ускоренного сохранения критических данных применим и в программной реализации для любого МК.
как пример...
в программе прерывания нужно сменить значение регистров-указателей, а затем восстановить.
Можно и через обычный стек, а можно и по иному (если есть запас "пустующих" регистров в младшей области регистрового файла)
movw r14,zl
movw r12,yl
movw r10,xl
собственно тело подпрограмы
movw xl,r10
movw yl,r12
movw zl,r14
ну и подобные операции в зависимости от расперделения ресурсов программы.
