INSTRUCCIONES DE TRANSFERENCIA DE CONTROL
(No afectan los flags):
JMP label
Saltar hacia la dirección label.
CALL label
Ir al procedimiento cuyo inicio es label. Para llamadas dentro del mismo segmento equivale a PUSH IP: JMP label, mientras que para llamadas entre segmentos equivale a PUSH CS: PUSH IP:
JMP label.
RET
Retorno de procedimiento.
RET inmed
Retorno de procedimiento y SP <- SP + inmed.
Variaciones de la instrucción de retorno:
RETN [inmed]
En el mismo segmento de código. Equivale a POP IP [:SP <- SP + inmed].
RETF [inmed]
En otro segmento de código. Equivale a POP IP: POP CS [:SP <- SP + inmed]
Saltos condicionales aritméticos (usar después de CMP):
Aritmética signada (con números positivos, negativos y cero)
JL etiqueta/JNGE etiqueta
Saltar a etiqueta si es menor.
JLE etiqueta/JNG etiqueta
Saltar a etiqueta si es menor o igual.
JE etiqueta
Saltar a etiqueta si es igual.
JNE etiqueta
Saltar a etiqueta si es distinto.
JGE etiqueta/JNL etiqueta
Saltar a etiqueta si es mayor o igual.
JG etiqueta/JNLE etiqueta
Saltar a etiqueta si es mayor.
Aritmética sin signo (con números positivos y cero)
JB etiqueta/JNAE etiqueta
Saltar a etiqueta si es menor.
JBE etiqueta/JNA etiqueta
Saltar a etiqueta si es menor o igual.
JE etiqueta
Saltar a etiqueta si es igual.
JNE etiqueta
Saltar a etiqueta si es distinto.
JAE etiqueta/JNB etiqueta
Saltar a etiqueta si es mayor o igual.
JA etiqueta/JNBE etiqueta
Saltar a etiqueta si es mayor.
Saltos condicionales según el valor de los indicadores:
JC label
Saltar si hubo arrastre/préstamo (CF = 1).
JNC label
Saltar si no hubo arrastre/préstamo (CF = 0).
JZ label
Saltar si el resultado es cero (ZF = 1).
JNZ label
Saltar si el resultado no es cero (ZF = 0).
JS label
Saltar si el signo es negativo (SF = 1).
JNS label
Saltar si el signo es positivo (SF = 0).
JP/JPE label
Saltar si la paridad es par (PF = 1).
JNP/JPO label
Saltar si la paridad es impar (PF = 0).
Saltos condicionales que usan el registro CX como contador:
LOOP label
Operación: CX <- CX-1. Saltar a label si CX<>0.
LOOPZ/LOOPE label
Operación: CX <- CX-1. Saltar a label si CX <> 0 y ZF = 1.
LOOPNZ/LOOPNE label
Operación: CX <- CX-1. Saltar a label si CX <> 0 y ZF = 0.
JCXZ label
Operación: Salta a label si CX = 0.
Interrupciones:
INT número
Salva los flags en la pila, hace TF=IF=0 y ejecuta la interrupción con el número indicado.
INTO
Interrupción condicional. Si OF = 1, hace INT 4.
IRETRetorno de interrupción. Restaura los indicadores del stack
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario