Renesas R8C/Tiny Series Software Manual page 133

16-bit single-chip microcomputer
Hide thumbs Also See for R8C/Tiny Series:
Table of Contents

Advertisement

Chapter 3
Functions
SHA
[ Syntax ]
SHA.size
src,dest
[ Operation ]
src
When
< 0
src
When
> 0
[ Function ]
overflowing from LSB (MSB) is transferred to the C flag.
• The direction of shift is determined by the sign of
bits are shifted right.
src
• If
is an immediate, the number of shifts is –8 to –1 and +1 to +8. You cannot set values less than
–8, equal to 0, or greater than +8.
src
• If
is a register and you selected (.B) for the size specifier (.size), the number of shifts is –8 to +8.
Although you can set 0, no bits are shifted and no flags are changed. If you set a value less than –8 or
greater than +8, the result of shift is indeterminate.
src
• If
is a register and you selected (.W) or (.L) for the size specifier (.size), the number of shifts is –16
to +16. Although you can set 0, no bits are shifted and no flags are changed. If you set a value less
than –16 or greater than +16, the result of shift is indeterminate.
[ Selectable src/dest ]
R0L/R0
R0H/R1
A0/A0
A1/A1
dsp:8[A0]
dsp:8[A1]
dsp:16[A0] dsp:16[A1]
dsp:20[A0] dsp:20[A1]
R2R0
R3R1
src
*1 If
is R1H, you cannot choose R1 or R1H for
*2 The range of values that can be taken on is –8 < #IMM < +8. However, you cannot set 0.
*3 You can only specify (.L) for the size specifier (.size). For other
[ Flag Change ]
U
I
O B
Flag
Change
Conditions
O :
The flag is set when the operation resulted in MSB changing its state from 1 to 0 or from 0 to 1; otherwise
cleared. However, the flag does not change if you selected (.L) for the size specifier (.size).
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. However, the flag is indeterminate if you
selected (.L) for the size specifier (.size).
C :
The flag is set when the bit shifted out last is 1; otherwise cleared. However, the flag is indeterminate if you
selected (.L) for the size specifier (.size).
[ Description Example ]
SHA.B
#3,R0L
SHA.B
#–3,R0L
SHA.L
R1H,R2R0
[ Related Instructions ]
Shift arithmetic
SHift Arithmetic
B , W , L
C
src
*1
R1L/R2
R1H
/R3
[A0]
[A1]
dsp:8[SB]
dsp:8[FB]
dsp:16[SB]
abs16
abs20
#IMM
*2
A1A0
S
Z
D
C
*1 If the number of shifts is 0, no flags are changed.
ROLC,RORC,ROT,SHL
[ Instruction Code/Number of Cycles ]
MSB
dest
MSB
dest
src
src
. If
is positive, bits are shifted left; if negative,
R0L/R0
R0H/R1
A0/A0
A1/A1
dsp:8[A0]
dsp:8[A1]
dsp:16[A0] dsp:16[A1] dsp:16[SB] abs16
dsp:20[A0] dsp:20[A1] abs20
*3
R2R0
R3R1
dest
.
dest
; Arithmetically shifted left
; Arithmetically shifted right
116
3.2
C
LSB
0
LSB
dest
*1
R1L/R2
R1H/R3
[A0]
[A1]
dsp:8[SB]
dsp:8[FB]
*3
A1A0
, you can specify (.B) or (.W).
Functions
SHA
Page=225
*1

Advertisement

Table of Contents
loading

Table of Contents