October 16 2017 23:02:04
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
КОМАНДЫ БИТОВОГО ПРОЦЕССОРА
МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА НС08

Данную группу образует 6 команд (Табл. 3.11). Совокупность этих команд называют битовым процессором. Наличие команд битового процессора позволяет существенно сократить управляющие программы по объему кода и времени выполнения. Обратите внимание, что команды BSET и BCLR действуют только на ячейки памяти с однобайтовыми адресами $00...$FF и не действуют на регистры центрального процессора. Следует правильно указывать операнды в командах BSET и BCL:

BSET 3,$35   ;Установить в 1 бит D3 в ячейке памяти с адресом ;$35.

BSET 0,$FF  ;Установить в 1 бит D0 в ячейке памяти с адресом $FF.

BCLR 3,$35 ;Сбросить (установить в 0) бит D3 в ячейке памяти с адресом

                     ;$35.

Команды условного перехода по значениям отдельных битов BRSET и BRCLR могут быть отнесены как к группе команд битового процессора, так и к группе команд управления. Поэтому последние приведены в следующем разделе.

Табл. 3.11. Команды битового процессора

Мнемокод

Операция

Выполняемое действие Способ адресации Влияние на признаки
V H I N Z С
BSET
BSET n,opr
Установить в 1 бит с номером n в байте данных. Данные могут располагаться в ячейке ОЗУ или регистре специальных функций. В команде используется только прямая адресация. Диапазон адресов байтов данных $00...$FF
Mn¬1

DIR(b0)
DIR(b1)
DIR(b2)
DIR(b3)
DIR(b4)
DIR(b5)
DIR(b6)
DIR(b7)





-





-





-





-





-





-
BCLR
BCLR n,opr

Установить в 0 (очистить) бит с номером n в байте данных. Данные могут располагаться в ячейке ОЗУ или регистре специальных функций. В команде используется только прямая адресация. Диапазон адресов байтов данных $00...$FF
Mn¬0

DIR(b0)
DIR(b1)
DIR(b2)
DIR(b3)
DIR(b4)
DIR(b5)
DIR(b6)
DIR(b7)





-





-





-





-





-





-
SEC Установить в 1 бит переноса С С¬1 INH - - - - - 1
CLC Установить в 0 бит переноса С С¬0 INH - - - - - 0
SEI Установить в 1 глобальную маску прерываний I. Запретить прерывания I¬1 INH
-

-

1

-

-

-
CLI Установить в 0 глобальную маску прерываний I. Разрешить прерывания 0 INH
-

-

0

-

-

-


3.3.5. КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ

Группа команд передачи управления является самой многочисленной группой. Она содержит 40 инструкций, которые делятся на две подгруппы:

* Команды условных и безусловных переходов (Табл. 3.12);

* Команды вызова подпрограмм и обслуживания прерываний (Табл. 3.13).

Центральный процессор CPU08 может использовать три команды условного перехода: традиционную трехбайтовую команду JMP и две двухбайтовых команды BRA и BRN. Команда JMP отличается расширенным набором способов задания адреса перехода. Этот адрес может быть в том числе определен одним из способов индексной адресации, что позволяет разместить изменяемый в ходе выполнения программы адрес в одной из ячеек ОЗУ. Двухбайтовая команда BRA реализует безусловный переход в пределах смещения -128...+127 относительно текущего адреса. Эта команда позволяет более экономно расходовать память. Команда BRN аналогична команде NOP, но имеет двухбайтовый формат. Значение смещения, которое указано во втором байте команды, смысла не имеет. Эта команда полезна для режимов отладки программного обеспечения в абсолютном коде. Она позволяет заменить инструкцию ветвления на инструкцию NOP без изменения байта смещения rel в формате команды условного перехода.

Группа команд ветвления чрезвычайно широка. Кроме переходов по традиционным условиям С, Z, N, Н, реализованы переходы по комбинациям флагов С и Z для сравнения операндов в прямом коде без знака, а также по комбинациям флагов С, Z и V для сравнения операндов в дополнительном коде со знаком.

Особое внимание следует обратить на команды CBEQ и DBNZ:

CBEQ opr,rel ;Сравнить аккумулятор АСС с содержимым прямо адресуемой

                      ;ячейки памяти и перейти по метке, если они равны.

CBEQ x+,rel  ;Сравнить аккумулятор АСС с содержимым ячейки памяти,

                      ;адрес которой содержится в индексном регистре, и перейти по

                      ;метке,если они равны. Содержимое индексного регистра

                      ;Н:Х увеличивается на 1 после выполнения сравнения.

DBNZ x,rel    ;Уменьшить на 1 содержимое ячейки памяти, адрес которой

                      ;указан в индексном регистре Н:Х, и перейти по метке, если

                      ;результат не равен 0.

DBNZA rel    ;Уменьшить на 1 содержимое аккумулятора АСС, и перейти по

                      ;метке, если результат не равен 0.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.03 секунд 2,254,114 уникальных посетителей