Está en la página 1de 4

MODO DE DIRECCIONAMIENTO A LA MEMORIA DEL PROGRAMA

SALTOS:
INTEL ha desarrollado sintaxis a bajo nivel para la identificación de esta técnica de cambio de
rumbo del CPU, en su navegar a través de la memoria del segmento de CODIGO. Todas las
instrucciones a alto nivel como: IF, GOTO, GOSUB, LOOP, UNTIL, CASE, FOR, etc tienen como
cimentación por el compilador la instrucción a bajo nivel identificada con el vocablo ingles JUMP.

CLASIFICACION UNIVERSAL DE LOS TIPOS DE SALTOS (JUMP, BRANCH, SKIP)

SALTOS CONDICIONADOS SALTOS NO CONDICIONADOS

Relativos Absolutos Relativos Absolutos

RELATIVOS: IP  IP + offset donde “offset” es un numero con signo y “+” es una suma
Algebraica

ABSOLUTO: IP  IP nuevo

En ambos casos “offset” o “IP nuevo” son valores numéricos compilados por el compilador
producto de una etiqueta de salto

CLASIFICACION DE SALTOS DE INTEL

SALTOS INTERSEGMENTO SALTOS INTRASEGMENTO

SALTOS LEJANOS SALTOS CORTOS (“offset” de 8 bit)


SALTOS CERCANOS (“offset” de
16 bits)
SUBCLASIFICACION DE MODOS DE DIRECCIONAMIENTO A LA MEMORIA DEL PROGRAMA

MODO DE DIRECCIONAMIENTO A LA MEMORIA DEL PROGRAMA DE TIPO DIRECTO:

JMP etiqueta de salto

CSnuevo, IP nuevo

Dinámica de desarrollo: CS  CS nuevo ; IP  IP nuevo

 Desde el punto de vista de la clasificación universal: SALTO NO CONDICIONADO,


ABSOLUTO
 Desde el punto de vista de la clasificación de INTEL: SALTO INTERSEGMENTO / SALTO
LEJANO
 Instrucción a alto nivel asociada: GOTO (link)

MODO DE DIRECCIONAMIENTO A LA MEMORIA DEL PROGRAMA DE TIPO RELATIVO:

JMP etiqueta de salto

Es un numero con signo de 8 o 16 bits “offset”

J flag etiqueta de salto

Es un numero con signo de 8 o 16 bits “offset”

La “flag” ( variable boolena) puede ser:

Simple o Básica Compuesta

Negada No negada números números sin


Con signo Signo
NZ Z negada No negada negada No negada
NC C L G B A
PO PE LE GE BE AE
SP S NE E NE E

 L = less than ; G = greather than ; B = below ; A = above ; E = equal (=Z) ; NE = non equal
JMP etiqueta de salto

Dinámica de desarrollo:

IP  IP + offset

Clasificación:

 Universal: SALTO NO CONDICIONADO RELATIVO


 INTEL: SALTO INTRASEGMENTO / SALTO CORTO si offset= 8 bits / SALTO CERCANO si el
offset = 16 bits
 Instrucción a alto nivel asociada: GOTO

J flag etiqueta de salto

Dinámica de desarrollo

a) Evaluación de la bandera (variable booleana)

Verdadera Falsa

b) Salto IP  IP + offset IP  IP + 1 (trayectoria natural)

Clasificación:

 Universal: SALTO CONDICIONADO RELATIVO


 INTEL: SALTO INTRASEGMENTO / SALTO CORTO si offset= 8 bits / SALTO CERCANO si el
offset = 16 bits

 Instrucción a alto nivel asociada: IF, FOR, DO

MODO DE DIRECCIONAMIENTO A LA MEMORIA DEL PROGRAMA DE TIPO INDIRECTO:

JMP etiqueta de salto

Es un registro de 16 bits (punteros index de memoria)

Dinámica de desarrollo:

IP  “registro”
Ejemplo: JMP AX
IP  AX

Clasificación:

 Universal: SALTO NO CONDICIONADO ABSOLUTO


 INTEL: SALTO INTRASEGMENTO / SALTO CERCANO O CORTO dependiendo de valor del
registro
 Instrucción a alto nivel asociada: CASE o SWITCH (alcance aritmetico)

JMP etiqueta de salto

Variable index de memoria en el segmento de dato

Dinámica de desarrollo:

IP  [ DSx10 + registro index+1], [ DSx10 + registro index]

Ejemplo: JMP [BX]

IP  [DSx10 +BX +1] ; [DSx10 + BX]

Clasificación:

 Universal: SALTO NO CONDICIONADO ABSOLUTO


 INTEL: SALTO INTRASEGMENTO / SALTO CERCANO O CORTO dependiendo de valor de los
dos bytes tomados del segmento de dato
 Instrucción a alto nivel asociada: CASE o SWITCH (alcance geométrico)

También podría gustarte