Please enable JavaScript.
Coggle requires JavaScript to display documents.
4.4 Conjunto de instrucciones. - Coggle Diagram
4.4 Conjunto de instrucciones.
El conjunto de instrucciones (ISA, por sus siglas en inglés, Instruction Set Architecture) de un microcontrolador es la colección de todas las operaciones que dicho microcontrolador puede ejecutar. Cada instrucción dentro del conjunto está diseñada para realizar una tarea específica, como mover datos entre registros, realizar operaciones aritméticas y lógicas, o gestionar el flujo de control del programa
instrucciones de Transferencia de Datos
MOV: Transfiere datos entre dos ubicaciones. Ejemplo: MOV A, R1 (Mueve el contenido de R1 al acumulador A).
LD (Load): Carga un dato desde memoria en un registro. Ejemplo: LD R0, X (Carga en R0 el contenido de la memoria apuntada por X).
ST (Store): Almacena un dato desde un registro en la memoria. Ejemplo: ST X, R0 (Almacena el contenido de R0 en la dirección de memoria apuntada por X).
IN/OUT: Transfiere datos entre puertos de entrada/salida y registros. Ejemplo: OUT PORTB, R16 (Escribe el contenido de R16 en el puerto PORTB).
PUSH/POP: Apila (PUSH) o desapila (POP) datos en/desde la pila. Ejemplo: PUSH R16 (Apila el contenido del registro R16 en la pila).
Instrucciones Aritméticas
ADD: Suma el contenido de dos registros. Ejemplo: ADD A, R1 (Suma el contenido de R1 al acumulador A).
SUB: Resta el contenido de un registro de otro. Ejemplo: SUB A, R2 (Resta el contenido de R2 del acumulador A).
MUL: Multiplica dos registros. Ejemplo: MUL R1, R2 (Multiplica los valores de R1 y R2).
DIV: Divide un registro entre otro. Ejemplo: DIV R1, R2 (Divide el contenido de R1 por el de R2).
INC/DEC: Incrementa o decrementa el valor de un registro en uno. Ejemplo: INC R0 (Incrementa el valor de R0 en uno).
Instrucciones Lógicas
AND: Realiza una operación AND bit a bit entre dos registros. Ejemplo: AND A, R1 (Realiza una operación AND entre el acumulador A y el registro R1).
OR: Realiza una operación OR bit a bit entre dos registros. Ejemplo: OR A, R1 (Realiza una operación OR entre A y R1).
XOR: Realiza una operación XOR bit a bit entre dos registros. Ejemplo: XOR A, R2 (Realiza una operación XOR entre A y R2).
NOT: Invierte los bits de un registro. Ejemplo: NOT A (Invierte los bits del acumulador A).
CLR: Limpia un registro, dejando su valor en cero. Ejemplo: CLR A (Establece a cero el contenido del acumulador A).
Instrucciones de Desplazamiento y Rotación
SL (Logical Shift Left): Desplaza los bits de un registro hacia la izquierda, introduciendo ceros por la derecha. Ejemplo: LSL A (Desplaza a la izquierda los bits del acumulador A).
LSR (Logical Shift Right): Desplaza los bits de un registro hacia la derecha, introduciendo ceros por la izquierda. Ejemplo: LSR A (Desplaza a la derecha los bits de A).
ROL (Rotate Left): Rota los bits de un registro hacia la izquierda, moviendo el bit más significativo al bit menos significativo. Ejemplo: ROL A.
ROR (Rotate Right): Rota los bits de un registro hacia la derecha. Ejemplo: ROR A.
Instrucciones de Control de Flujo
JMP: Salta a una dirección especificada de memoria. Ejemplo: JMP 0x200 (Salta a la dirección de memoria 0x200).
CALL: Llama a una subrutina. Ejemplo: CALL SUBRUTINA1 (Llama a la subrutina en la dirección SUBRUTINA1).
RET: Retorna de una subrutina. Ejemplo: RET (Regresa al punto desde donde se llamó la subrutina).
BRANCH: Realiza un salto condicional dependiendo del resultado de una operación. Ejemplo: BRNE (Salta si el resultado de la última operación no fue cero).
NOP: No realiza ninguna operación. Ejemplo: NOP (Una instrucción que puede utilizarse para introducir retardos sin realizar operaciones).
Instrucciones de Interrupciones
SEI (Set Interrupt Enable): Habilita las interrupciones globalmente.
CLI (Clear Interrupt Enable): Deshabilita las interrupciones globalmente.
RETI (Return from Interrupt): Retorna de una rutina de servicio de interrupción, restaurando el contexto previo.
Instrucciones de Manipulación de Bits
SET: Establece un bit específico en un registro. Ejemplo: SETB P1.0 (Establece a 1 el bit 0 del puerto P1).
CLR: Limpia un bit específico en un registro. Ejemplo: CLR P1.0 (Establece a 0 el bit 0 del puerto P1).
BSF (Bit Set File): Establece un bit específico en un registro. Ejemplo: BSF STATUS, 5 (Establece el bit 5 del registro STATUS).
BCF (Bit Clear File): Limpia un bit específico en un registro. Ejemplo: BCF STATUS, 5 (Limpia el bit 5 del registro STATUS).