You are on page 1of 9

NOMBRE:

JORGE DAVID YAEZ GONZALEZ.


ZULMA MARIELA GONZALEZ RAMOS.


CATEDRATICO:
ING. OMAR VEGA ARRIAGA.
MATERIA:
SOFTWARE DE SISTEMAS.
CARRERA:
LIC. EN INFORMATICA. TURNO NOCTURNO.
FECHA:
13/ABRIL/2008.
1
JORGE DAVID YAEZ GONZALEZ.
ZULMA MARIELA GONZALEZ RAMOS.
INSTRUCCIONES DE SALTO.
Sa!"# $%&"%'$&$"%a(# ) &"%'$&$"%a(#.
A veces un programa debe cambiar el flujo del programa
en forma incondicional o bajo una condicin (Para tomar
una decisin), por lo tanto debe haber instrucciones que
permitan cambiar el flujo de un programa sin ningn
requisito, o en caso de que una condicin se cumpla.
Eisten instrucciones para !ste propsito. "on las
instrucciones de saltos incondicionales # condicionales,
que saltan a un determinado punto si se cumpla la
condicin.
2
JORGE DAVID YAEZ GONZALEZ.
ZULMA MARIELA GONZALEZ RAMOS.
Sa!"# $%&"%'$&$"%a(#.
Empecemos por el salto sin condiciones, con el que
podremos cambiar el control a cualquier punto del
programa.
"er$a como el %&oto' del (asic, simplemente transferir el
control a otro punto del programa. )a orden es
*+P (de *ump, salto)
"i record is a ,estas alturas los registros -". /P, se
podr0 ver que, es lo que hace realmente la instruccin, #
no es mas que incrementar o decremento /P para llegar a
la 1ona del programa a la que queremos transferir el
control (/P es el 2ffset que indica la 1ona de memoria
que contiene la siguiente instruccin a ejecutar, # -" el
segmento)
El formato mas sencillo para el salto ser$a *+P 34565h,
lo que saltar$a a esa 1ona.
Pero es digamos que %algo pesado' calcular en
que, direccin va a estar esa instruccin, con lo que
utili1aremos etiquetas.
)a nica instruccin que eiste para !ste fin es *+P
(Abreviatura de *7+P, que significa en ingl!s "A)8A9).
)a sintais es la siguiente.
3
JORGE DAVID YAEZ GONZALEZ.
ZULMA MARIELA GONZALEZ RAMOS.
*+P ::::::::. Es la ubicacin de la instruccin en
donde se continuar0 el programa (A partir de !sta se
ejecutan las siguientes).
Ejemplo.
::::. 3;33 +2< A:, ;333
::::. 3;34 *+P 3;3=
::::. 3;3> :29 A:, A:
::::. 3;3= /?8 63
En !ste caso al ejecutarse la instruccin de salto
incondicional (*+P), se contina la ejecucin a partir de
la instruccin (/?8 63h), no ejecut0ndose la instruccin
:29 (@sta instruccin reali1a la operacin :29 de el
operando 6 sobre el operando ;) que provocar$a el
borrado de registro A: (Aue provocar$a que A: tome el
valor 3), si se ejecuta.
Es decir, se ejecutan las siguientes instrucciones.
+2< A:, ;333
*+P 3;3=
/?8 63
?o se ejecuta B:29 A:, A:B por el salto incondicional.
El operando puede ser una direccin constante (Por
ejemplo 3;3=), un salto a nivel de offset, tambi!n puede
ser un salto largo (Aue cambie los valores de los
registros -" e /P), (Por ejemplo CCCC. 3333, que salta al
92+ (/2").
4
JORGE DAVID YAEZ GONZALEZ.
ZULMA MARIELA GONZALEZ RAMOS.
8ambi!n puede ser el valor de un registro, por ejemplo.
*+P D/
En !ste caso salta a la instruccin apuntada por D/.
8ambi!n puede ser un valor apuntado por un registro
puntero, por ejemplo.
*+P E"/F
En !ste caso salta a la instruccin apuntada por el valor
apuntado por "/.
El operando puede ser cualquier direccionamiento v0lido
(Puede ser cualquiera de los direccionamientos utili1ados
en el operando origen de la instruccin +2<, eplicados
anteriormente).
5
JORGE DAVID YAEZ GONZALEZ.
ZULMA MARIELA GONZALEZ RAMOS.
Sa!"# C"%'$&$"%a(#.
9ecord is aquel /CG8HE?GE)"E, o el C29, o el IH/)EG
D2.
(ien, pues aqu$ esta lo que suple a estas instrucciones en
lenguaje ensamblador. "e basan completamente en los
flags, pero est0n simplificados de tal manera que no
har0n falta saberlos de memoria para poder hacerlos.
)os saltos podr$an resumirse en un modo %(asic' de la
manera /CG8HE?G&282 de tal manera que cuando se
cumple una condicin se salta a un sitio determinado.
"on similares a *+P en la sintais, pero la diferencia es
el nombre.
)as instrucciones son las siguientes.
*E o *J. "alta si est0 prendido el bit cero del registro
de banderas.
2bjetivo. "altar si la ltima comparacin reali1ada da
igual.
*A o *?(E. "alta si el bit carr# (-C) o el bit cero (JC)
del registro de banderas est0 desactivado.
2bjetivo. "altar si la ltima comparacin reali1ada con
nmeros naturales da ma#or.
*( o *?AE. "alta si -C est0 activada.
2bjetivo. "altar si la ltima comparacin reali1ada con
nmeros naturales da menor.
*& o *?)E. "alta si JC es cero o si 2C # "C son iguales.
6
JORGE DAVID YAEZ GONZALEZ.
ZULMA MARIELA GONZALEZ RAMOS.
2bjetivo. "altar si la ltima comparacin reali1ada con
nmeros enteros da ma#or.
*) o *?&E. "altar si "C es diferente a 2C
2bjetivo. "altar si la ltima comparacin reali1ada con
nmeros enteros da menor.
*-. "altar si -C est0 prendida
2bjetivo. "altar si ha# acarreo
*2. "altar si 2C est0 prendido
2bjetivo. "altar si ha# desbordamiento
*P. "altar si PC est0 prendido
2bjetivo. "altar si ha# paridad
*". "altar si "C est0 prendido
2bjetivo. "altar si es negativo
*?E o *?J. -omportamiento inverso a *E o *J
*?A o *(E. -omportamiento inverso a *A o *?(E
*?( o *AE. -omportamiento inverso a *( o *?AE
*?& o *)E. -omportamiento inverso a *& o *?)E
*?) o *&E. -omportamiento inverso a *) o *?&E
*?-. -omportamiento inverso a *-
*?2. -omportamiento inverso a *2
*?P o *P2. -omportamiento inverso a *P
*?". -omportamiento inverso a *"
Ha# otras instrucciones que hacen saltos condicionales,
pero que no necesitan la instruccin -+P, son las
siguientes.
7
JORGE DAVID YAEZ GONZALEZ.
ZULMA MARIELA GONZALEZ RAMOS.
*-:J. "alta si el registro -: es cero.
)22P. Decremento -:, rest0ndole ; # salta si -: es
distinto de cero.
2bjetivo. Hacer un bucle, utili1ando como contador -:
)22PE. Decremento -: en ; # salta si -: es distinto de
cero # JC est0 prendido.
2bjetivo. Hacer un bucle, utili1ando como contador -: #
terminar si el contador llega a cero, o se apaga el bit
cero.
)22P?E. Decremento -: en ; # salta si JC est0
prendido
2bjetivo. Hacer un bucle que siga funcionando hasta que
se apague el bit -ero.
)a sintais de !stas instrucciones son similares a la
instruccin *+P, lo nico que cambia es el nombre.
8
JORGE DAVID YAEZ GONZALEZ.
ZULMA MARIELA GONZALEZ RAMOS.
Sa!"# (*a%"# ) &"+!"#.
Ahora algo sobre los saltos lejanos, cercanos # cortos.
El salto corto se reali1a entre el punto en el que se esta
# K;6= o L;6M, o sea que la cantidad que se puede
contener en un b#te con signo. A veces es necesario
indicar que se trata de salto corto, cercano o lejano.
El salto cercano se reali1a contando como distancia el
contenido de dos b#tes, o que el rango ser$a desde
46=N= a L46=NM b#tes de distancia.
O el lejano se reali1a contando como distancia el
contenido de cuatro b#tes, #,P paso de calcular la
distancia.
,"+ (*(-.". es incorrecto que ha#a en la direccin ;33h
una instruccin que diga *+P "H298 >33h, #a que la
distancia no corresponde a un salto cort. Adem0s el
salto dependiendo de que sea cercano, corto o largo se
codifica de manera diferente en modo headecimal.
9
JORGE DAVID YAEZ GONZALEZ.
ZULMA MARIELA GONZALEZ RAMOS.

You might also like