Posted by : Andrés Cuaycal
viernes, 17 de abril de 2015
INSTRUCCIONES DE ROTACIÓN Y DESPLAZAMIENTO
Los ejemplos de aplicación de estas instrucciones se verán mas adelante realizando programas de operaciones matemáticas.
Todas las instrucciones se encuentran en el set de instrucciones.
>> Instrucción LSL, Logical Shift Left
Esta instrucción desplaza todos los bits de Rd un lugar a la izquierda. El bit 0 es borrado y el bit 7 es cargado en la bandera de carry del registro SREG. Esta operación es equivalente a multiplicar por 2 valores con signo y sin signo.Operación:
←
|
||||||||||
C
|
←
|
b7
|
b0
|
←
|
0
|
Sintaxis: Operandos
LSL Rd 0 ≤ d ≤ 31
>> Instrucción LSR, Logical Shift Right
Esta instrucción desplaza todos los bits de Rd un lugar a la derecha. El bit 7 es borrado y el bit 0 es cargado en la bandera de carry del registro SREG. Esta operación es equivalente a dividir para 2 valores sin signo.Operación:
→
|
||||||||||
0
|
→
|
b7
|
b0
|
→
|
C
|
Sintaxis: Operandos
LSR Rd 0 ≤ d ≤ 31
>> Instrucción ROL, Rotate Left trough Carry
Esta instrucción desplaza todos los bits de Rd un lugar a la izquierda. La bandera del carry en SREG pasa al bit 0 de Rd. El bit 7 desplazado a la bandera de carry del registro SREG. Esta operación combinada con LSL es equivalente a multiplicar por 2 valores multi-byte con signo y sin signo.Operación:
←
|
||||||||||
C
|
←
|
b7
|
b0
|
←
|
C
|
Sintaxis: Operandos
ROL Rd 0 ≤ d ≤ 31
>> Instrucción ROR, Rotate Right trough Carry
Esta instrucción desplaza todos los bits de Rd un lugar a la derecha. La bandera del carry en SREG pasa al bit 7 de Rd. El bit 0 desplazado a la bandera de carry del registro SREG. Esta operación combinada con LSR o ASR es equivalente a dividir pora 2 valores multi-byte sin signo y con signo respectivamente.Operación:
→
|
||||||||||
C
|
→
|
b7
|
b0
|
→
|
C
|
Sintaxis: Operandos
ROR Rd 0 ≤ d ≤ 31
>> Instrucción ASR, Arithmetic Shift Right
Esta instrucción desplaza todos los bits de Rd un lugar a la derecha. El bit 7 se mantiene constante y el bit 0 es cargado en la bandera de carry del registro SREG. Esta operación es equivalente a dividir para 2 valores con signo.Operación:
→
|
||||||||||
b7
|
b0
|
→
|
C
|
Sintaxis: Operandos
ASR Rd 0 ≤ d ≤ 31
>> Instrucción SWAP, Swap Nibbles
Esta instrucción intercambia nibbles alto y bajo de un registro.Operación:
b7
|
b6
|
b5
|
b4
|
b3
|
b2
|
b1
|
b0
|
Antes
|
|
b0
|
b1
|
b2
|
b3
|
b7
|
b6
|
b5
|
b4
|
Después
|
Sintaxis: Operandos
SWAP Rd 0 ≤ d ≤ 31
Posts Relacionados :
- Back to Home »
- Lenguaje Assembler »
- Instrucciones de Rotación y Desplazamiento