BIT[.W] |
Проверка битов получателя |
BIT.B |
Проверка битов получателя |
Синтаксис |
BIT src,dst или BIT.W src,dst |
Операция |
src .AND. dst |
Описание |
Над операндом источника и операндом получателя выполняется операция логического «И» (логическое умножение). Результат влияет только на биты статуса. Операнды источника и получателя не изменяются. |
Биты статуса |
N: |
Устанавливается, если установлен MSB результата, иначе сбрасывается |
Z: |
Устанавливается, если результат «0», в противном случае сбрасывается |
C: |
Устанавливается, если результат не «0»; в противном случае сбрасывается (.NOT. Zero) |
V: |
Сбрасывается |
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
Пример |
Если бит 9 регистра R8 установлен, выполняется переход к метке TOM:
BIT #0200h,R8 ; бит 9 регистра R8 установлен?
JNZ TOM ; Да, переход к метке TOM
… ; Нет, продолжение программы
|
Пример |
Если бит 3 регистра R8 установлен, выполняется переход к метке TOM:
BIT #8,R8
JС TOM
|
Пример |
Проверяется бит приема (RCV) при последовательной передаче данных. Поскольку при использовании команды BIT для проверки одного бита содержимое бита переноса эквивалентно состоянию проверяемого бита, оно используется в следующей команде; прочитанная информация сдвигается в регистр RECBUF:
;
; Последовательная передача данных, начиная с младшего бита (LSB),
; сдвиг которого происходит в первую очередь:
; xxxx xxxx xxxx xxxx
BIT.B #RCV,RCCTL ; Информационный бит в бите переноса
RRC RECBUF ; Бит переноса -> в MSB регистра RECBUF
; cxxx xxxx
… ; повтор двух предыдущих команд
… ; 8 раз
; cccc cccc
; ^ ^
; MSB LSB
; Последовательная передача данных, начиная со старшего бита (MSB),
; сдвиг которого происходит в первую очередь:
BIT.B #RCV,RCCTL ; Информационный бит в бите переноса
RLC.B RECBUF ; Бит переноса -> в LSB регистра RECBUF
; xxxx xxxc
… ; повтор двух предыдущих команд
… ; 8 раз
; cccc cccc
; LSB
; MSB
|