Posted by : Andrés Cuaycal
viernes, 17 de abril de 2015
INSTRUCCIONES LÓGICAS
Todas las instrucciones se encuentran en el set de instrucciones.>> Instrucción COM, One's Complement
Esta instrucción permite realizar la operación de complemento a uno del contenido del registro Rd.Operación:
Rd ← $FF-Rd
Sintaxis: Operandos
COM Rd 0 ≤ d ≤ 31
Ejemplos:
ldi
r17,0b00001111 ; cargo en R17 el valor de 0b00001111
com r5 ; R5 =
0b11110000
>> Instrucción NEG, Two's Complement
Esta instrucción permite realizar la operación de complemento a dos del contenido del registro Rd.Operación:
Rd ← $00-Rd
Sintaxis: Operandos
NEG Rd 0 ≤ d ≤ 31
Ejemplos:
ldi
r17,0b00001111 ; cargo en R17 el valor de 0b00001111
neg
r5 ; R5 = 0b11110001>> Instrucción AND, Logical AND
Realiza la operación lógica AND entre el contenido de dos registros Rd y Rr y el resultado queda en el registro de destino Rd.Operación:
Rd ← Rd·Rr
Sintaxis: Operandos
AND Rd,Rr 0 ≤ d ≤ 31, 0 ≤ r ≤ 31
Ejemplos:
ldi
r16,0b00001111 ; cargo en R16 0b00001111
ldi
r17,0b00000011 ; cargo en R17 0b00000011
and
r16,r17 ; R16 termina con 0b00000011, R17 no cambia>> Instrucción ANDI, Logical AND with Immediate
Realiza la operación lógica AND entre el contenido del registro Rd y una constante. El resultado queda en el registro de destino Rd.Operación:
Rd ← Rd·K
Sintaxis: Operandos
ANDI Rd,K 16 ≤ d ≤ 31, 0 ≤ K ≤ 255
Ejemplos:
ldi
r16,0b00001111 ; cargo en R16 0b00001111
andi
r16,0b11111111 ; R16 termina con 0b00000000
>> Instrucción OR, Logical OR
Realiza la operación lógica OR entre el contenido de dos registros Rd y Rr y el resultado queda en el registro de destino Rd.Operación:
Rd ← Rd v Rr
Sintaxis: Operandos
OR Rd,Rr 0 ≤ d ≤ 31, 0 ≤ r ≤ 31
Ejemplos:
ldi
r16,0b00001111 ; cargo en R16 0b00001111
ldi
r17,0b11000011 ; cargo en R17 0b00000011
or
r16,r17 ; R16 termina con 0b11001111, R17 no cambia>> Instrucción ORI, Logical OR with Immediate
Realiza la operación lógica ORI entre el contenido del registro Rd y una constante. El resultado queda en el registro de destino Rd.Operación:
Rd ← Rd·K
Sintaxis: Operandos
ORI Rd,K 16 ≤ d ≤ 31, 0 ≤ K ≤ 255
Ejemplos:
ldi
r16,0b00001111 ; cargo en R16 0b00001111
ori
r16,0b11111111 ; R16 termina con 0b11111111
>> Instrucción EOR, Exclusive OR
Realiza la operación lógica EOR entre el contenido de dos registros Rd y Rr y el resultado queda en el registro de destino Rd.Operación:
Rd ← Rd (+) Rr
Sintaxis: Operandos
EOR Rd,Rr 0 ≤ d ≤ 31, 0 ≤ r ≤ 31
Ejemplos:
ldi
r16,0b00001111 ; cargo en R16 0b00000011
ldi
r17,0b11000011 ; cargo en R17 0b11000011
eor r16,r17 ; R16
termina con 0b11000000, R17 no cambia