## page was renamed from ASMOperador2ARM = 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||{{attachment:LSL.png | width="75%"}}|| ||'''LSR'''||Corrimiento lógico hacia la derecha||{{attachment:LSR.png | width="75%"}}|| ||'''ASR'''||Corrimiento Aritmético hacia la derecha||{{attachment:ASR.png | width="75%"}}|| ||'''ROR'''||Rotación hacia la derecha||{{attachment:ROR.png | width="75%"}}|| ||'''RRX'''||Rotación hacia la derecha extendido o rotación usando acarreo||{{attachment:RRX.png | width="75%"}}|| == 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''' ||