martes, 17 de marzo de 2020

2.5 SALTOS

2.5 SALTOS

La mayoría de los programas constan de varios ciclos en los que una serie de pasos se repite hasta alcanzar un requisito específico y varias pruebas para determinar qué acción se realiza de entre varias posibles. 

Una instrucción usada comúnmente para la transferencia de control es la instrucción JMP (jump, salto, bifurcación). Un salto es incondicional, ya que la operación transfiere el control bajo cualquier circunstancia. También JMP vacía el resultado de la instrucción previamente procesada; por lo que, un programa con muchas operaciones de salto puede perder velocidad de procesamiento. 

La instrucción LOOP, requiere un valor inicial en el registro CX. En cada iteración, LOOP de forma automática disminuye 1 de CX. Si el valor en el CX es cero, el control pasa a la instrucción que sigue; si el valor en el CX no es cero, el control pasa a la dirección del operando. La distancia debe ser un salto corto, desde -128 hasta +127 bytes. Para una operación que exceda este límite, el ensamblador envía un mensaje como "salto relativo fuera de rango".

EJEMPLO

El código es el siguiente


1.- Definamos el modelo de memoria, en este caso SMALL
2.- Definimos la pila en memoria
3.-DATA para permitir declarar nuestros datos
4 y 5.- Definimos variables
6.- Indicamos inicio de código
7.- Etiqueta de inicio
8.- Transfiere 10 a AX
9.-Transfiere 10 a BX
10.- Es AX=BX
11.- Si SI saltar a la etiqueta igual
12.-NO, entonces imprimir cad2
13.-Transfiere AH el valor 09h
14.- Saltar a la etiqueta salir
Nuestro proceso de ensamblador es el siguiente:





No hay comentarios.:

Publicar un comentario