Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное_пособие.doc
Скачиваний:
70
Добавлен:
10.11.2019
Размер:
8.13 Mб
Скачать

2.6.4 Команды сдвигов и операций с битами

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

Мнемо-

ника

Операнды

Описание

Операция

Флаги

Кол-во циклов

LSL

Rd

Логический сдвиг влево

Rd(n+1)Rd(n), Rd(0)0, CRd(7)

Z,C,N,V,H

1

LSR

Rd

Логический сдвиг вправо

Rd(n)Rd(n+1), Rd(7)0, CRd(0)

Z,C,N,V

1

ROL

Rd

Сдвиг влево через перенос

Rd(0)C,Rd(n+1)Rd(n),CRd(7)

Z,C,N,V,H

1

ROR

Rd

Сдвиг вправо через перенос

Rd(7)C,Rd(n)Rd(n+1),CRd(0)

Z,C,N,V

1

ASR

Rd

Арифметический сдвиг вправо

Rd(n)Rd(n+1),CRd(0)

Z,C,N,V

1

SWAP

Rd

Обмен тетрадами

Rd(3-0)↔Rd(7-4)

1

BSET

s

Установить флаг

SREG(s)1

SREG(s)

1

BCLR

s

Очистить флаг

SREG(s)0

SREG(s)

1

SBI

I/O,b

Установить бит в регистре I/O

I/O(b)1

2

CBI

I/O,b

Очистить бит в регистре I/O

I/O(b)0

2

BST

Rd,b

Переписать бит из регистра во флаг Т

TRd(b)

T

1

BLD

Rd,b

Загрузить Т флаг в бит регистра

Rd(b)T

1

SEC

Установить флаг переноса

С1

С

1

CLC

Очистить флаг переноса

С0

С

1

SEN

Установить флаг отрицательного значения

N1

N

1

CLN

Очистить флаг отрицательного значения

N0

N

1

SEZ

Установить флаг нулевого значения

Z1

Z

1

CLZ

Очистить флаг нулевого значения

Z0

Z

1

SEI

Установить флаг глобального разре- шения прерываний

I1

I

1

CLI

Очистить флаг гло –бального разрешен. прерываний

I0

I

1

SES

Установить флаг знака

S1

S

1

CLS

Очистить флаг знака

S0

S

1

SEV

Установить флаг переполнения

V1

V

1

CLV

Очистить флаг переполнения

V0

V

1

SET

Установить флаг T

T1

T

1

CLT

Очистить флаг T

T0

T

1

SHE

Установить флаг полупереноса

H1

H

1

CLH

Очистить флаг полупереноса

H0

H

1

NOP

Выполнить пустую команду

1

SLEEP

Установить режим SLEEP

1

WDR

Сбросить сторожевой таймер

1

Командами LSL и LSR выполняются операции логических сдвигов в указанном регистре общего назначения влево и вправо, причем выдвигаемый из регистра разряд помещается в бит переноса С, а в вдвигаемый разряд регистра помещается 0.

Команда логического сдвига вправо LSR Rd:

Командами ROL и ROR производится циклический сдвиг содержимого указанного в команде регистра общего назначения влево или вправо соответственно через бит переноса.

Сдвиг влево через бит переноса ROL Rd:

Командой арифметического сдвига ASR производится сдвиг вправо содержимого регистра, с помещением выдвигаемого разряда в бит переноса и заполнение шестого разряда регистра старшим (знаковым) разрядом.

Команды обработки битов представлены командами установки и сброса любого бита в регистре состояния контроллера и в любом регистре ввода-вывода, адрес которого в пределах 0 - $1f. а также командами пересылки указанного бита из указанного регистра общего назначения в бит копии Т и обратно.

Для удобства чтения команд, кроме общих команд установки/сброса бита регистра состояния, имеются индивидуальные команды для таких же операций. Например, команды BSET 0 и SEC выполняют одинаковую операцию (имеют одинаковый код) установки бита переноса С, однако вторая команда более читаема (Setting C).