Renesas Renasas Single-Chip Microcomputer SH7086 Manual de usuario Pagina 136

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 308
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 135
118
3.2 Functions
Chapter 3 Functions
SHift Arithmetic
Shift arithmetic
[ Syntax ]
SHA.size src,dest
[ Related Instructions ] ROLC,RORC,ROT,SHL
SHA
B , W , L
[ Function ]
[ Description Example ]
SHA.B #3,R0L ; Arithmetically shifted left
SHA.B #3,R0L ; Arithmetically shifted right
SHA.L R1H,R2R0
[ Operation ]
When
src
< 0
When
src
> 0
[ Flag Change ]
UIOBSZDC
[ 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
*3
R3R1
*3
A1A0
*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.
*3 You can only specify (.L) for the size specifier (.size). For other
dest
, you can specify (.B) or (.W).
SHA
[ Instruction Code/Number of Cycles ]
Page=
227
0
C
MSB dest LSB
MSB dest LSB
C
overflowing from LSB (MSB) is transferred to the C flag.
The direction of shift is determined by the sign of
src
. If
src
is positive, bits are shifted left; if negative,
bits are shifted right.
If
src
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.
If
src
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.
If
src
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.
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).
*1 If the number of shifts is 0, no flags are changed.
Vista de pagina 135
1 2 ... 131 132 133 134 135 136 137 138 139 140 141 ... 307 308

Comentarios a estos manuales

Sin comentarios