112
3.2 Functions
Chapter 3 Functions
ROTate
Rotate
[ Related Instructions ]
ROLC,RORC,SHA,SHL
ROT
ROT
[ Syntax ]
ROT.size
src,dest
B , W
• This instruction rotates
dest
left or right the number of bits indicated by
src
. The bit overflowing from LSB
(MSB) is transferred to MSB(LSB) and the C flag.
• The direction of rotate is determined by the sign of
src
. If
src
is positive, bits are rotated left; if negative, bits
are rotated right.
• If
src
is an immediate, the number of rotates is –8 to –1 and +1 to +8. You cannot set values less than –8,
equal to 0, or greater than +8.
• If
src
is a register and you selected (.B) for the size specifier (.size), the number of rotates is –8 to +8.
Although you can set 0, no bits are rotated and no flags are changed. If you set a value less than –8 or
greater than +8, the result of rotation is indeterminate.
• If
src
is a register and you selected (.W) for the size specifier (.size), the number of rotates is –16 to +16.
Although you can set 0, no bits are rotated and no flags are changed. If you set a value less than –16 or
greater than +16, the result of rotation is indeterminate.
[ Operation ]
LSB
srcÅÑ0
srcÅÉ0
C
[ Function ]
MSB
[ Description Example ]
ROT.B
#1,R0L
; Rotated left
ROT.B
#–1,R0L
; Rotated right
ROT.W
R1H,R2
[ Flag Change ]
U
I
O
B
S
Z
D
C
*1 If
src
is R1H, you cannot choose R1 or R1H for
dest
.
*2 The range of values that can be taken on is –8 < #IMM < +8. However, you cannot set 0.
[ Selectable src/dest ]
src
dest
R0L/R0
R0H/R1
R1L/R2
R1H
*1
/R3
R0L/R0
R0H/R1
*1
R1L/R2
R1H/R3
*1
A0/A0
A1/A1
[A0]
[A1]
A0/
A0
A1/
A1
[A0]
[A1]
dsp:8[A0]
dsp:8[A1]
dsp:8[SB]
dsp:8[FB]
dsp:8[A0]
dsp:8[A1]
dsp:8[SB]
dsp:8[FB]
dsp:16[A0] dsp:16[A1]
dsp:16[SB]
abs16
dsp:16[A0] dsp:16[A1] dsp:16[SB] abs16
dsp:20[A0] dsp:20[A1]
abs20
#IMM
*2
dsp:20[A0] dsp:20[A1] abs20
R2R0
R3R1
A1A0
R2R0
R3R1
A1A0
C
[ Instruction Code/Number of Cycles ]
Page=220
dest
Flag
Change
Conditions
S :
The flag is set when the operation resulted in MSB = 1; otherwise cleared.
Z :
The flag is set when the operation resulted in 0; otherwise cleared.
C :
The flag is set when the bit shifted out last is 1; otherwise cleared.
*1 If the number of rotates is 0, no flags are changed.
Содержание R8C/Tiny Series
Страница 50: ...Chapter 3 Functions 3 1 Guide to This Chapter 3 2 Functions...
Страница 151: ...134 Chapter 3 Functions 3 2 Functions Blank for page layout...
Страница 152: ...Chapter 4 Instruction Code Number of Cycles 4 1 Guide to This Chapter 4 2 Instruction Code Number of Cycles...
Страница 278: ...Chapter 6 Calculation Number of Cycles 6 1 Instruction queue buffer...
Страница 287: ...Glossary 1 Glossary Technical terms used in this software manual are explained below They are good in this manual only...
Страница 291: ...Symbol 1 Table of symbols Symbols used in this software manual are explained below They are good in this manual only...
Страница 295: ...REVISION HISTORY R8C Tiny Series SOFTWARE MANUAL Rev Date Description Page Summary B 1 1 00 Jun 19 03 First Edition...
Страница 297: ...R8C Tiny Series Software Manual 2 6 2 Ote machi Chiyoda ku Tokyo 100 0004 Japan...