*RLС[.W] |
Арифметическая ротация влево через перенос |
*RLС.B |
Арифметическая ротация влево через перенос |
Синтаксис |
RLС dst или RLС.W dst RLС.B dst |
Операция |
C -> MSB -> MSB–1 … LSB+1 -> LSB -> С |
Эмуляция |
ADDС dst,dst |
Описание |
Операнд получателя сдвигается влево на одну позицию, как показано на рис.3.15.
Бит переноса (С) сдвигается в младший бит LSB, а старший бит MSB сдвигается в бит переноса (С). |
 Рис.3-15 Операнд получателя – сдвиг влево через перенос |
Биты статуса |
N: |
Устанавливается, если результат отрицательный; сбрасывается, если положительный |
Z: |
Устанавливается, если результат «0», в противном случае сбрасывается |
C: |
Загружается из MSB |
V: |
Устанавливается, если произошло арифметическое переполнение
исходное значение 04000h =< dst < 0C000h; в противном случае сбрасывается
Устанавливается, если произошло арифметическое переполнение
исходное значение 040h =< dst < 0C0h; в противном случае сбрасывается |
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
Пример |
Содержимое регистра R5 сдвигается влево на одну позицию.
RLC R5 ; (R5*2)+C -> R5
|
Пример |
Данные с входа P1IN.1 сдвигаются в младший бит LSB регистра R5.
BIT.B #2,&P1IN ; данные -> в бит переноса (Сarry)
RLC R5 ; Carry=P0in.1 -> в LSB регистра R5
|
Пример |
Содержимое MEM(LEO) сдвигается влево на одну позицию.
RLC.B LEO ; Mem(LEO)*2+C -> Mem(LEO)
Примечание: эмуляция RLC и RLC.B
Ассемблер не распознает команду:
RLC @R5+
Вместо неё должна использоваться следующая команда:
ADDC @R5+,-2(R5)
|