Las instrucciones del ensamblador
- Instrucciones de salto Son utilizadas para transferir el flujo del proceso al operando indicado.
- Instrucciones para ciclos: LOOP Transfieren el flujo del proceso, condicional o incondicionalmente, a un destino repitiendose esta acción hasta que el contador sea cero.
- Instrucciones de conteo Se utilizan para decrementar o incrementar el contenido de los contadores.
- Instrucciones de comparación Son usadas para comparar operandos, afectan al contenido de las banderas.
- Instrucciones de banderas Afectan directamente al contenido de las banderas.
Instrucción JMP
Propósito: Salto incondicionalSintaxis:
JMP destino
Esta instrucción se utiliza para desviar el flujo de un programa sin tomar en cuenta las condiciones actuales de las banderas ni de los datos.
Instrucción JA (JNBE)
Propósito: Brinco condicionalSintaxis:
JA Etiqueta
Después de una comparación este comando salta si está arriba o salta si no está abajo o si no es igual.
Esto significa que el salto se realiza solo si la bandera CF esta desactivada o si la bandera ZF esta desactivada (que alguna de las dos sea igual a cero).
Instrucción JAE (JNB)
Propósito: salto condicionalSintaxis:
JAE etiqueta
Salta si está arriba o si es igual o salta si no está abajo.
El salto se efectua si CF esta desactivada.
Instrucción JB (JNAE)
Propósito: salto condicionalSintaxis:
JB etiqueta
Salta si está abajo o salta si no está arriba o si no es igual.
Se efectúa el salto si CF esta activada.
Instrucción JBE (JNA)
Propósito: salto condicionalSintaxis:
JBE etiqueta
Salta si está abajo o si es igual o salta si no está arriba.
El salto se efectúa si CF está activado o si ZF está activado (que cualquiera sea igual a 1).
Instrucción JE (JZ)
Propósito: salto condicionalSintaxis:
JE etiqueta
Salta si es igual o salta si es cero.
El salto se realiza si ZF está activada.
Instrucción JNE (JNZ)
Propósito: salto condicionalSintaxis:
JNE etiqueta
Salta si no es igual o salta si no es cero.
El salto se efectua si ZF está desactivada.
Instrucción JG (JNLE)
Propósito: salto condicional, se toma en cuenta el signo.Sintaxis:
JG etiqueta
Salta si es más grande o salta si no es menor o igual.
El salto ocurre si ZF = 0 u OF = SF.
Instrucción JGE (JNL)
Propósito: salto condicional, se toma en cuenta el signo.Sintaxis:
JGE etiqueta
Salta si es más grande o igual o salta si no es menor que.
El salto se realiza si SF = OF
Instrucción JL (JNGE)
Propósito: salto condicional, se toma en cuenta el signo.Sintaxis:
JL etiqueta
Salta si es menor que o salta si no es mayor o igual.
El salto se efectúa si SF es diferente a OF.
Instrucción JLE (JNG)
Propósito: salto condicional, se toma en cuenta el signo.Sintaxis:
JLE etiqueta
Salta si es menor o igual o salta si no es más grande.
El salto se realiza si ZF = 1 o si SF es diferente a OF
Instrucción JC
Propósito: salto condicional, se toman en cuenta las banderas.Sintaxis:
JC etiqueta
Salta si hay acarreo.
El salto se realiza si CF = 1
Instrucción JNC
Propósito: salto condicional, se toma en cuenta el estado de las banderas.Sintaxis:
JNC etiqueta
Salta si no hay acarreo.
El salto se efectúa si CF = 0.
Instrucción JNO
Propósito: salto condicional, se toma en cuenta el estado de las banderas.Sintaxis:
JNO etiqueta
Salta si no hay desbordamiento.
El salto se efectua si OF = 0.
Instrucción JNP (JPO)
Propósito: salto condicional, toma en cuenta el estado de las banderas.Sintaxis:
JNP etiqueta
Salta si no hay paridad o salta si la paridad es non.
El salto ocurre si PF = 0.
Instrucción JNS
Propósito: salto condicional, toma en cuenta el estado de las banderas.Sintaxis:
JNP etiqueta
Salta si el signo esta desactivado.
El salto se efectúa si SF = 0.
Instrucción JO
Propósito: salto condicional, toma en cuenta el estado de las banderas.Sintaxis:
JO etiqueta
Salta si hay desbordamiento (overflow).
El salto se realiza si OF = 1.
Instrucción JP (JPE)
Propósito: salto condicional, toma en cuenta el estado de las banderas.Sintaxis:
JP etiqueta
Salta si hay paridad o salta si la paridad es par.
El salto se efectúa si PF = 1.
Instrucción JS
Propósito: salto condicional, toma en cuenta el estado de las banderas.Sintaxis:
JS etiqueta
Salta si el signo está prendido.
El salto se efectúa si SF = 1.
Instrucción LOOP
Propósito: Generar un ciclo en el programa.Sintaxis:
LOOP etiqueta
La instrucción loop decrementa CX en 1, y transfiere el flujo del programa a la etiqueta dada como operando si CX es diferente a 1.
Instrucción LOOPE
Propósito: Generar un ciclo en el programa considerando el estado de ZFSintaxis:
LOOPE etiqueta
Esta instrucción decrementa CX en 1. Si CX es diferente a cero y ZF es igual a 1, entonces el flujo del programa se transfiere a la etiqueta indicada como operando.
Instrucción LOOPNE
Propósito: Generar un ciclo en el programa, considerando el estado de ZFSintaxis:
LOOPNE etiqueta
Esta instrucción decrementa en uno a CX y transfiere el flujo del programa solo si ZF es diferente a 0.
Instrucción DEC
Propósito: Decrementar el operandoSintaxis:
DEC destino
Esta operación resta 1 al operando destino y almacena el nuevo valor en el mismo oeprando.
Instrucción INC
Propósito: Incrementar el operando.Sintaxis:
INC destino
La instrucción suma 1 al operando destino y guarda el resultado en el mismo operando destino.
Instrucción CMP
Propósito: Comparar los operandos.Sintaxis:
CMP destino, fuente
Esta instrucción resta el operando fuente al operando destino pero sin que éste almacene el resultado de la operación, solo se afecta el estado de las banderas.
Instrucción CMPS (CMPSB) (CMPSW)
Propósito: Comparar cadenas de un byte o palabra.Sintaxis:
CMP destino, fuente
Con esta instrucción la cadena de caracteres fuente se resta de la cadena destino.
Se utilizan DI como indice para el segmento extra de la cadena fuente y SI como indice de la cadena destino.
Solo se afecta el contenido de las banderas y tanto DI como SI se incrementan.
Instrucción CLC
Propósito: Limpiar bandera de acarreo.Sintaxis:
CLC
Esta instrucción apaga el bit correspondiente a la bandera de acarreo, o sea, lo pone en cero.
Instrucción CLD
Propósito: Limpiar bandera de direcciónSintaxis:
CLD
La instrucción CLD pone en cero el bit correspondiente a la bandera de dirección.
Instrucción CLI
Propósito: Limpiar bandera de interrupciónSintaxis:
CLI
CLI pone en cero la bandera de interrupciones, desabilitando así aquellas interrupciones enmascarables.
Una interrupción enmascarable es aquella cuyas funciones son desactivadas cuando IF = 0.
Instrucción CMC
Propósito: Complementar la bandera de acarreo.Sintaxis:
CMC
Esta instrucción complementa el estado de la bandera CF, si CF = 0 la instrucción la iguala a 1, y si es 1 la instrucción la iguala a 0.
Podemos decir que unicamente "invierte" el valor de la bandera.
Instrucción STC
Propósito: Activar la bandera de acarreo.Sintaxis:
STC
Esta instrucción pone la bandera CF en 1.
Instrucción STD
Propósito: Activar la bandera de dirección.Sintaxis:
STD
La instrucción STD pone la bandera DF en 1.
Instrucción STI
Propósito: Acticar la bandera de interrupción.Sintaxis:
STI
La instrucción activa la bandera IF, esto habilita las interrupciones externas enmascarables (las que funcionan unicamente cuando IF = 1 ).
No hay comentarios:
Publicar un comentario