Скачиваний:
29
Добавлен:
01.05.2014
Размер:
2 Мб
Скачать

1.4.2. Регистровый файл rf (Register File)

RF разделен на верхний (Upper) и нижий (Lower) регистровые файлы ( рис.2.4). Верхний регистровый файл содержит универсальные регистры оперативной памяти (Register RAM). Нижний регистровый файл содержит универсальные регистры оперативной памяти, указатель вершины стека (SP), регистры специальных функций CPU (CPU SFRs).

ВНИМАНИЕ! "Монитор" использует для своей работы 6 байт регистрового файла с адресами (1Ah-1Fh). Использование их программой пользователя может привести к непредсказуемым последствиям!

1.4.2.1. Указатель вершины стека (SP)

Ячейки памяти 18H и 19H содержат указатель вершины стека (SP). SP содержит адрес стека. SP должен указывать на адрес слова (четный адрес), который на два байта больше, чем требуемый начальный адрес. Прежде, чем CPU выполняет вызов подпрограммы или программу обработки прерывания, он декрементирует дважды SP и затем копирует (PUSH) адрес следующей команды из программного счетчика в стек.

После этого CPU загружает адрес подпрограммы или программы обработки прерывания в программный счетчик. Когда CPU завершит подпрограмму или программу обработки прерывания, он выполняет команду возврата из подпрограммы (RET) и выталкивает содержимое вершины стека ( то есть адрес возврата ) в счетчик программ.

При занесении данных в стек (PUSH), стек растет вниз, при извлечении данных из стека (POP), стек растет вверх.

Через стек также передаются параметры в подпрограммы. Параметры помещаются в стек в порядке, в котором с ними сталкиваются при просмотре исходного текста.

Стек может размещаться или во внутреннем RF или во внешней оперативной памяти. Следующая команда инициализирует верхнюю часть верхнего RF 8XC196KС как стек.

LD SP,#200H ; Загрузить указатель вершины стека

По умолчанию "Монитор" инициализирует стек с адреса 200h и помещает в него адрес возврата из программы пользователя (2222h). При выполнении программы пользователя в пошаговом режиме либо с точками останова, "Монитор" использует текущее состояние стека, поэтому, чтобы избежать потери информации, необходимо резервировать под стек на 4 байта больше требуемого.

Для того, чтобы завершить программу пользователя, необходимо выполнить команду RET. В случае, если пользователь использует свой стек, программа может быть завершена двумя способами:

- поместить в стек значение 2222h и выполнить команду RET;

- выполнить команду дальнего перехода LJMP 2222h.

1.4.2.2. Регистры специальных функций CPU SFRs

Ячейки 00H-17H обеспечивают доступ к регистрам cпециальных функций CPU (CPUSFRs) через три горизонтальных окна (HWindow 0, 1, и 15). Регистры специальных функций позволяют непосредственно управлять всеми периферийными модулями, за исключением портов 3 и 4.

Функции большинства SFRs изменяются в зависимости от того читают ли из них или записывают в них. По этой причине, никогда не используйте SFR как операнд в командах типа чтение - модификация - запись (например: XORB AD_RESULT,#1).

Соседние файлы в папке Лабораторные работы по МПС