Script - Страница 12

МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА 8051 - Script

Рис. 8.5. Слово состояния программы (PSW).

Рассматривая содержимое слова PSW, можно заметить отсутствие флага нуля, который устанавливается в 1, когда результат арифметической, логической, битовой или сдвиговой операции равен нулю. Проверка на нуль в 8051 происходит по другому. Команда «jz» проверяет содержимое аккумулятора (А) и выполняет переход, если его содержимое равно нулю.

Биты «RSO» и «RS1» выбирают текущий 8-байтовый банк регистров, которые используются для реализации однобайтных операций. Команды, адресующие регистры этих банков, содержат меньше байтов и выполняются быстрее. Два младших регистра каждого банка (RO и R1) могут использоваться для индексной адресации первых 256 байт в памяти данных.

Указатель стека SP может адресовать только на первые 256 байт памяти. После включения микроконтроллера его содержимое принимает значение 007h, но можно изменить это значение, например, на 028h, перемещая стек в верхнюю часть памяти данных. Может показаться странным, что команда загрузки в стек «push» производит инкремент (увеличение на 1) содержимого регистра SP, тогда как в большинстве других типов микроконтроллеров выполняется его декремент (уменьшение на 1). Это означает, что стек в 8051 растет вверх — в направлении увеличения адресов, а не вниз — в сторону уменьшения, как в большинстве микроконтроллеров. Если вы хотите иметь большой объем стека, то следует установить в указателе стека более низкое начальное значение адреса, а не более высокое, как в других микроконтроллерах.

Go to Top