Operador2
Es el segundo operador, que se encuentra en toda instrucción aritmética, lógica o de comparación este tiene características particulares, pudiendo ser:
- Valor inmediato de 32bits.
- Registro de propósitos múltiples (en este caso se puede adicionar un corrimiento fijo o determinado por otro registro).
Como se describió arriba, el operador 2 puede estar compuesto por un registro desplazado de una forma determinada (hacia la izquierda, derecha, corrimiento aritmético, etc) una cantidad fija de bits o dada por otro registro.
Describimos a continuación esta parte de la instrucción que se subdivide como una instrucción dentro de otra
Rm LSL {valor} |
El operador 2 (Rm) es desplazado un numero fijo de bits hacia la izquierda |
Rm LSL Rs |
El operador 2 (Rm) es desplazado Rs bits hacia la izquierda |
Los tipos de desplazamientos son cinco y se describen a continuación:
LSL |
Corrimiento lógico hacia la izquierda |
|
LSR |
Corrimiento lógico hacia la derecha |
|
ASR |
Corrimiento Aritmético hacia la derecha |
|
ROR |
Rotación hacia la derecha |
|
RRX |
Rotación hacia la derecha extendido o rotación usando acarreo |
Descripción de la estructura de una instrucción que posee el operador 2
32 bits inmediato
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
09 |
08 |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
cond |
0 |
0 |
1 |
opcode |
S |
Rn |
Rd |
rotate_imm |
immed_8 |
||||||||||||||||||||||
|
Operador 2 |
Corrimiento inmediato
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
09 |
08 |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
cond |
0 |
0 |
0 |
opcode |
S |
Rn |
Rd |
shift_imm |
tipo shift |
0 |
Rm |
||||||||||||||||||||
|
Operador 2 |
Corrimiento por registro
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
09 |
08 |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
cond |
0 |
0 |
0 |
opcode |
S |
Rn |
Rd |
Rs |
0 |
tipo shift |
1 |
Rm |
|||||||||||||||||||
|
Operador 2 |