SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
2.2.2 CONDICIONAL
A veces un programa debe cambiar el flujo del programa en forma incondicional o
bajo una condición (Para tomar una decisión), por lo tanto debe haber
instrucciones que permitan cambiar el flujo de un programa sin ningún requisito, o
en caso de que una condición se cumpla. Existen instrucciones para éste propósito.
Son las instrucciones de saltos incondicionales y condicionales, que saltan a un
determinado punto si se cumpla la condición.

Las instrucciones son las siguientes:

JE o JZ: Salta si está prendido el bit Zero del registro de banderas.
Objetivo: Saltar si la última comparación realizada da igual.

JA o JNBE: Salta si el bit carry (CF) o el bit zero (ZF) del registro de banderas
está desactivado.
Objetivo: Saltar si la última comparación realizada con números naturales da
mayor.

JB o JNAE: Salta si CF está activada.
Objetivo: Saltar si la última comparación realizada con números naturales da
menor.

JG o JNLE: Salta si ZF es cero o si OF y SF son iguales.
Objetivo: Saltar si la última comparación realizada con números enteros da mayor.

JL o JNGE: Saltar si SF es diferente a OF
Objetivo: Saltar si la última comparación realizada con números enteros da menor.

JC: Saltar si CF está prendida
Objetivo: Saltar si hay acarreo

JO: Saltar si OF está prendido
Objetivo: Saltar si hay desbordamiento

JP: Saltar si PF está prendido
Objetivo: Saltar si hay paridad

JS: Saltar si SF está prendido
Objetivo: Saltar si es negativo
JNE o JNZ: Comportamiento inverso a JE o JZ

JNA o JBE: Comportamiento inverso a JA o JNBE

JNB o JAE: Comportamiento inverso a JB o JNAE

JNG o JLE: Comportamiento inverso a JG o JNLE

JNL o JGE: Comportamiento inverso a JL o JNGE

JNC: Comportamiento inverso a JC

JNO: Comportamiento inverso a JO

JNP o JPO: Comportamiento inverso a JP

JNS: Comportamiento inverso a JS



Hay otras instrucciones que hacen saltos condicionales, pero que no necesitan la
instrucción CMP, son las siguientes:

JCXZ: Salta si el registro CX es cero.

LOOP: Decrementa CX, restándole 1 y salta si CX es distinto de cero.
Objetivo: Hacer un bucle, utilizando como contador CX

LOOPE: Decrementa CX en 1 y salta si CX es distinto de cero y ZF está prendido.
Objetivo: Hacer un bucle, utilizando como contador CX y terminar si el contador
llega a cero, o se apaga el bit Zero.

LOOPNE: Decrementa CX en 1 y salta si ZF está prendido
Objetivo: Hacer un bucle que siga funcionando hasta que se apague el bit Zero.

La sintaxis de éstas instrucciones son similares a la instrucción JMP, lo único que
cambia es el nombre.
BIBLIOGRAFIA

      Libros de Wikipedia: Programación en lenguaje ensamblador/Primeros
       conceptos
Página web:
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_lenguaje_ensamblador/Pri
meros_conceptos#Saltos_incondicionales_y_condicionales

Más contenido relacionado

Más de gabo

Resultados encuesta
Resultados encuestaResultados encuesta
Resultados encuestagabo
 
Encuesta sound search
Encuesta sound searchEncuesta sound search
Encuesta sound searchgabo
 
Sound search
Sound searchSound search
Sound searchgabo
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibridagabo
 
Equipo 6 comparaciones
Equipo 6 comparacionesEquipo 6 comparaciones
Equipo 6 comparacionesgabo
 
Equipo 6 codigo segment
Equipo 6 codigo segmentEquipo 6 codigo segment
Equipo 6 codigo segmentgabo
 
Equipo 6 buses
Equipo 6 busesEquipo 6 buses
Equipo 6 busesgabo
 
Emulador emu8086
Emulador emu8086Emulador emu8086
Emulador emu8086gabo
 
Condicional
CondicionalCondicional
Condicionalgabo
 
Condicional
CondicionalCondicional
Condicionalgabo
 
Equipo 1
Equipo 1Equipo 1
Equipo 1gabo
 
Equipo 1
Equipo 1Equipo 1
Equipo 1gabo
 
Modos de direccionamiento
Modos de direccionamientoModos de direccionamiento
Modos de direccionamientogabo
 
Equipo 5
Equipo 5Equipo 5
Equipo 5gabo
 
3.2.2 Externos
3.2.2 Externos3.2.2 Externos
3.2.2 Externosgabo
 
3.2.2 Externos
3.2.2 Externos3.2.2 Externos
3.2.2 Externosgabo
 
2.5.2 Circular
2.5.2 Circular2.5.2 Circular
2.5.2 Circulargabo
 
2.1.4 ajustes
2.1.4 ajustes2.1.4 ajustes
2.1.4 ajustesgabo
 
2.1.4 ajustes
2.1.4 ajustes2.1.4 ajustes
2.1.4 ajustesgabo
 
1.4.2 pila stack segment
1.4.2 pila stack  segment1.4.2 pila stack  segment
1.4.2 pila stack segmentgabo
 

Más de gabo (20)

Resultados encuesta
Resultados encuestaResultados encuesta
Resultados encuesta
 
Encuesta sound search
Encuesta sound searchEncuesta sound search
Encuesta sound search
 
Sound search
Sound searchSound search
Sound search
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibrida
 
Equipo 6 comparaciones
Equipo 6 comparacionesEquipo 6 comparaciones
Equipo 6 comparaciones
 
Equipo 6 codigo segment
Equipo 6 codigo segmentEquipo 6 codigo segment
Equipo 6 codigo segment
 
Equipo 6 buses
Equipo 6 busesEquipo 6 buses
Equipo 6 buses
 
Emulador emu8086
Emulador emu8086Emulador emu8086
Emulador emu8086
 
Condicional
CondicionalCondicional
Condicional
 
Condicional
CondicionalCondicional
Condicional
 
Equipo 1
Equipo 1Equipo 1
Equipo 1
 
Equipo 1
Equipo 1Equipo 1
Equipo 1
 
Modos de direccionamiento
Modos de direccionamientoModos de direccionamiento
Modos de direccionamiento
 
Equipo 5
Equipo 5Equipo 5
Equipo 5
 
3.2.2 Externos
3.2.2 Externos3.2.2 Externos
3.2.2 Externos
 
3.2.2 Externos
3.2.2 Externos3.2.2 Externos
3.2.2 Externos
 
2.5.2 Circular
2.5.2 Circular2.5.2 Circular
2.5.2 Circular
 
2.1.4 ajustes
2.1.4 ajustes2.1.4 ajustes
2.1.4 ajustes
 
2.1.4 ajustes
2.1.4 ajustes2.1.4 ajustes
2.1.4 ajustes
 
1.4.2 pila stack segment
1.4.2 pila stack  segment1.4.2 pila stack  segment
1.4.2 pila stack segment
 

Condicional

  • 1. 2.2.2 CONDICIONAL A veces un programa debe cambiar el flujo del programa en forma incondicional o bajo una condición (Para tomar una decisión), por lo tanto debe haber instrucciones que permitan cambiar el flujo de un programa sin ningún requisito, o en caso de que una condición se cumpla. Existen instrucciones para éste propósito. Son las instrucciones de saltos incondicionales y condicionales, que saltan a un determinado punto si se cumpla la condición. Las instrucciones son las siguientes: JE o JZ: Salta si está prendido el bit Zero del registro de banderas. Objetivo: Saltar si la última comparación realizada da igual. JA o JNBE: Salta si el bit carry (CF) o el bit zero (ZF) del registro de banderas está desactivado. Objetivo: Saltar si la última comparación realizada con números naturales da mayor. JB o JNAE: Salta si CF está activada. Objetivo: Saltar si la última comparación realizada con números naturales da menor. JG o JNLE: Salta si ZF es cero o si OF y SF son iguales. Objetivo: Saltar si la última comparación realizada con números enteros da mayor. JL o JNGE: Saltar si SF es diferente a OF Objetivo: Saltar si la última comparación realizada con números enteros da menor. JC: Saltar si CF está prendida Objetivo: Saltar si hay acarreo JO: Saltar si OF está prendido Objetivo: Saltar si hay desbordamiento JP: Saltar si PF está prendido Objetivo: Saltar si hay paridad JS: Saltar si SF está prendido Objetivo: Saltar si es negativo
  • 2. JNE o JNZ: Comportamiento inverso a JE o JZ JNA o JBE: Comportamiento inverso a JA o JNBE JNB o JAE: Comportamiento inverso a JB o JNAE JNG o JLE: Comportamiento inverso a JG o JNLE JNL o JGE: Comportamiento inverso a JL o JNGE JNC: Comportamiento inverso a JC JNO: Comportamiento inverso a JO JNP o JPO: Comportamiento inverso a JP JNS: Comportamiento inverso a JS Hay otras instrucciones que hacen saltos condicionales, pero que no necesitan la instrucción CMP, son las siguientes: JCXZ: Salta si el registro CX es cero. LOOP: Decrementa CX, restándole 1 y salta si CX es distinto de cero. Objetivo: Hacer un bucle, utilizando como contador CX LOOPE: Decrementa CX en 1 y salta si CX es distinto de cero y ZF está prendido. Objetivo: Hacer un bucle, utilizando como contador CX y terminar si el contador llega a cero, o se apaga el bit Zero. LOOPNE: Decrementa CX en 1 y salta si ZF está prendido Objetivo: Hacer un bucle que siga funcionando hasta que se apague el bit Zero. La sintaxis de éstas instrucciones son similares a la instrucción JMP, lo único que cambia es el nombre.
  • 3. BIBLIOGRAFIA  Libros de Wikipedia: Programación en lenguaje ensamblador/Primeros conceptos Página web: http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_lenguaje_ensamblador/Pri meros_conceptos#Saltos_incondicionales_y_condicionales