Instrucciones de salto condicional
El ensamblador permite usar una variedad de instrucciones de salto condicional que transfieren el control dependiendo de las configuraciones en el registro de banderas. Por ejemplo, puede comparar dos campos y después saltar de acuerdo con los valores de las banderas que la comparación establece. El formato general para el salto condicional es:
| [etiqueta:] | Jnnn | dirección corta | |
Como ya se explico la instrucción LOOP disminuye el registro CX; si es diferente de cero, transfiere el control a la dirección del operando. podría reemplazar el enunciado LOOP A20 de la figura anterior con dos enunciados – uno que decremente el CX y otro que realice un salto condicional:
DEC CX ;Equivalente a LOOP
JNZ A20
. . .
DEC y JNZ realizan exactamente lo que hace LOOP. DEC decrementa en 1 CX y pone a 1 o a 0 la bandera de cero (ZF) en el registro de banderas. Después JNZ prueba la configuración de la bandera de cero; si el CX es diferente de cero, el control pasa a A20, y si el CX es cero el control pasa a la siguiente instrucción hacia abajo.
Datos con signo y sin signo
Distinguir el propósito de los saltos condicionales debe clarificar su uso. El tipo de datos (sin signo o con signo) sobre los que se realizan las comparaciones o la aritmética puede determinar cual es la instrucción a utilizar. Un dato sin signo trata todos los bits como bits de datos; ejemplos típicos son las cadenas de caracteres, tal como nombres o direcciones, y valores numéricos tal como números de cliente. Un dato con signo trata el bit de mas a la izquierda como un signo, en donde 0 es positivo y 1 es negativo.
En el ejemplo siguiente, el AX contiene 11000110 y el BX contiene 00010110. La siguiente instrucción
CMP AX, BX compara el contenido de AX con el contenido del BX. Para datos sin signo, el valor AX es mayor; sin embargo, para datos con signo el valor AX es menor a causa del signo negativo.
Saltos con base en datos sin signo
Las instrucciones siguientes de salto condicional se aplican a datos sin signo:
Cada una de estas pruebas las puede expresar en uno de dos códigos simbólicos de operación.
Saltos con base en datos con signo
Las instrucciones siguientes de salto condicional se aplican a datos con signo:
Pruebas aritméticas especiales
Las siguientes instrucciones de salto condicional tienen usos especiales:
No espere memorizar todas estas instrucciones; sin embargo, como recordatorio note que un salto para datos sin signo es igual, superior o inferior, mientras que un salto para datos con signo es igual, mayor que o menor. Los saltos que prueban banderas de acarreo, de desbordamiento y de paridad tienen propósitos únicos.