Set de instrucciones
Descargar en formato PDF (tamaño A5)
Aquí se listan todas las instrucciones que soporta el simulador. Cada instrucción tiene una breve descripción, una tabla con los flags que modifica. Si hay un "0" o un "1", significa que el flag se modifica a 0
o 1
respectivamente. Si hay una "X", significa que lo modifica según corresponda. Si no hay nada, significa que el flag no se modifica.
Instrucciones de transferencia de datos
Instrucción | Comentario | CF | ZF | SF | IF | OF |
---|---|---|---|---|---|---|
MOV dest, fuente | Copia fuente en dest | -- | -- | -- | -- | -- |
PUSH fuente | Carga fuente en el tope de la pila | -- | -- | -- | -- | -- |
POP dest | Desapila el tope de la pila y lo carga en dest | -- | -- | -- | -- | -- |
PUSHF | Apila FLAGS | -- | -- | -- | -- | -- |
POPF | Desapila FLAGS | X | X | X | X | X |
IN dest, fuente | Carga el valor en el puerto fuente en dest | -- | -- | -- | -- | -- |
OUT dest, fuente | Carga en el puerto dest el valor en fuente | -- | -- | -- | -- | -- |
Instrucciones aritméticas
Instrucción | Comentario | CF | ZF | SF | IF | OF |
---|---|---|---|---|---|---|
ADD dest, fuente | Suma fuente a dest | X | X | X | -- | X |
ADC dest, fuente | Suma fuente y CF a dest | X | X | X | -- | X |
SUB dest, fuente | Resta fuente a dest | X | X | X | -- | X |
SBB dest, fuente | Resta fuente y CF a dest | X | X | X | -- | X |
CMP dest, fuente | Compara fuente con dest | X | X | X | -- | X |
NEG dest | Negativo de dest | X | X | X | -- | X |
INC dest | Incrementa dest | X | X | X | -- | X |
DEC dest | Decrementa dest | X | X | X | -- | X |
Instrucciones lógicas
Instrucción | Comentario | CF | ZF | SF | IF | OF |
---|---|---|---|---|---|---|
AND dest, fuente | Operación dest AND fuente bit a bit | 0 | X | X | -- | 0 |
OR dest, fuente | Operación dest OR fuente bit a bit | 0 | X | X | -- | 0 |
XOR dest, fuente | Operación dest XOR fuente bit a bit | 0 | X | X | -- | 0 |
TEST dest, fuente | Operación dest AND fuente bit a bit, solo flags | 0 | X | X | -- | 0 |
NOT dest | Operación NOT dest bit a bit | 0 | X | X | -- | 0 |
Instrucciones de transferencia de control
Instrucción | Comentario | CF | ZF | SF | IF | OF |
---|---|---|---|---|---|---|
CALL etiqueta | Llama a subrutina cuyo inicio es etiqueta | -- | -- | -- | -- | -- |
RET | Retorna de la subrutina | -- | -- | -- | -- | -- |
JC etiqueta | Salta a etiqueta si CF=1 | -- | -- | -- | -- | -- |
JNC etiqueta | Salta a etiqueta si CF=0 | -- | -- | -- | -- | -- |
JZ etiqueta | Salta a etiqueta si ZF=1 | -- | -- | -- | -- | -- |
JNZ etiqueta | Salta a etiqueta si ZF=0 | -- | -- | -- | -- | -- |
JS etiqueta | Salta a etiqueta si SF=1 | -- | -- | -- | -- | -- |
JNS etiqueta | Salta a etiqueta si SF=0 | -- | -- | -- | -- | -- |
JO etiqueta | Salta a etiqueta si OF=1 | -- | -- | -- | -- | -- |
JNO etiqueta | Salta a etiqueta si OF=0 | -- | -- | -- | -- | -- |
JMP etiqueta | Salta incondicionalmente a etiqueta | -- | -- | -- | -- | -- |
Instrucciones de manejo de interrupciones
Instrucción | Comentario | CF | ZF | SF | IF | OF |
---|---|---|---|---|---|---|
INT N | Ejecuta la interrupción por software N | -- | -- | -- | 0 | -- |
IRET | Retorna de la rutina de interrupción | X | X | X | X | X |
CLI | Inhabilita interrupciones enmascarables | -- | -- | -- | 0 | -- |
STI | Habilita interrupciones enmascarables | -- | -- | -- | 1 | -- |
Instrucciones de control
Instrucción | Comentario | CF | ZF | SF | IF | OF |
---|---|---|---|---|---|---|
NOP | No hace nada | -- | -- | -- | -- | -- |
HLT | Detiene la ejecución | -- | -- | -- | -- | -- |