= 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||
||
||ROX||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||||||||||||||||||||||||