Está en la página 1de 6

ALUMNOS:

ROJAS TORRES WILLIAM

PROFESOR (A):
LUPITA MONSERRAT AGATON CATALAN

MATERIA:
LENGUAJES DE INTERFAZ

TEMA:
INSTRUCCIONES EMULADOR 8086

HORA: 09:00-10:00 NO. CONTROL: 18320977


1. CICLOS NUMERICOS
Las instrucciones de bucle se usan para realizar estructuras repetitivas, y utilizan
el registro CX como contador. LOOP está instrucción hace que el programa salte a
la dirección especificada (salto dentro del segmento), mientras que CX sea distinto
de 0 y decrementa CX en 1 cada vez.
LOOP salto
LOOPNE/LOOPNZ esta instrucción salta a la dirección especificada mientras que
CX sea distinto de 0 y si ZF = 0.
LOOPNE/LOOPNZ salto
Esta instrucción proporciona una ruptura del bucle adicional. LOOPE/LOOPZ esta
instrucción actúa como la anterior pero la condición adicional es ZF = 1.
LOOPE/LOOPZ salto
JCXZ está instrucción realiza un salto si CX = 0.
JCXZ salto
Ninguna de estas instrucciones afecta al registro de estado.

2. CAPTURA BASICA DE CADENAS


MOVSB
Copiar un byte de la cadena fuente al destino.
Operación:

1. ES: [DI] <- DS: [SI] (un byte)


2. DI <- DI±1
3. SI <- SI±1

MOVSW
Copiar dos bytes de la cadena fuente al destino.
Operación:

1. ES: [DI] <- DS: [SI] (dos bytes)


2. DI <- DI±2
3. SI <- SI±2

LODSB
Poner en el acumulado un byte de la cadena fuente.
Operación:

1. AL <- DS: [SI] (un byte)


2. SI <- SI±1

LODSW
Poner en el acumulador dos bytes de la cadena fuente.
Operación:

1. AX <- DS: [SI] (dos bytes)


2. SI <- SI±2

STOSB
Almacenar en la cadena destino un byte del acumulador.
Operación:

1. ES: [DI] <- AL (un byte)


2. DI <- DI±1

STOSW
Almacenar en la cadena destino dos bytes del acumulador.
Operación:

1. ES: [DI] <- AX (dos bytes)


2. DI <- DI±2

CMPSB
Comparar un byte de la cadena fuente con el destino.
Operación:

1. DS: [SI] - ES: [DI] (Un byte, afecta sólo los flags)
2. DI <- DI±1
3. SI <- SI±1

CMPSW
Comparar dos bytes de la cadena fuente con el destino.
Operación:

1. DS: [SI] - ES: [DI] (Dos bytes, afecta sólo los flags)
2. DI <- DI±2
3. SI <- SI±2

SCASB
Comparar un byte del acumulador con la cadena destino.
Operación:

1. AL - ES: [DI] (Un byte, afecta sólo los flags)


2. DI <- DI±1
SCASW
Comparar dos bytes del acumulador con la cadena destino.
Operación:

1. AX - ES:[DI] (Dos byte, afecta sólo los flags)


2. DI <- DI±2

En todos los casos el signo + se toma si el indicador DF vale cero. Si vale 1 hay
que tomar el signo -.

Prefijo para las instrucciones MOVSB, MOVSW, LODSB, LODSW, STOSB y


STOSW:

 REP: Repetir la instrucción CX veces.

Prefijos para las instrucciones CMPSB, CMPSW, SCASB, SCASW:

 REPZ/REPE: Repetir mientras que sean iguales hasta un máximo de CX


veces.
 REPNZ/REPNE: Repetir mientras que sean diferentes hasta un máximo de
CX veces.

3. COMPARACION Y PRUEBA
LAS INSTRUCCIONES DE COMPARACIÓN SON INSTRUCCIONES DE RESTA
ARITMÉTICA, AUNQUE EL RESULTADO DE LA RESTA SE PIERDE
QUEDANDO INAFECTADO EL OPERANDO DESTINO. LAS BANDERAS DEL
REGISTRO DE ESTADO INFORMAN SOBRE LAS CUALIDADES DEL
RESULTADO, PUDIÉNDOSE UTILIZARLAS COMO CONDICIÓN EN LAS
INSTRUCCIONES DE BIFURCACIÓN CONDICIONADA.

A) COMPARACIÓN NORMAL CMP Sintaxis: CMP operando_1, operando_2


Operación: operando_1 – operando_2

B) COMPARACIÓN DE CADENAS SCAS y CMPS Sintaxis: SCASB


Operación: AL – byte ptr ES: [DI] y DIÅDI ± 1 Sintaxis: SCASW Operación:
AX – word ptr ES: [DI] y DIÅDI ± 2

C) Sintaxis: CMPSB Operación: byte ptr DS: [SI] – byte ptr ES: [DI] y DIÅDI ± 1
Sintaxis: CMPSW Operación: word ptr DS: [SI] –word ptr ES: [DI] y DIÅDI ±
2
Utilidad de SCAS: encontrar el inicio de una cadena en otra Utilidad de CMPS:
comparar dos cadenas.
4. SALTOS
Estas instrucciones permiten saltar a otras partes del código. Todas cambian el
registro IP (contador de programa) y el registro CS (segmento de código) si es un
salto lejano. Un salto es lejano cuando la dirección a la que se salta no está en el
mismo segmento de código.
Existen dos tipos de saltos: los absolutos; en lo que se especifica la dirección
absoluta a la que se salta; y los relativos; que son saltos hacia delante o hacia
atrás desde el valor de IP.
JMP realiza un salto incondicional a la dirección especificada. La siguiente tabla
relaciona los tipos de saltos y los argumentos que puede tomar esta instrucción.

Saltos condicionales estas instrucciones realizan el salto a la dirección


especificada en función de si se cumple o no una condición. Para evaluar la
condición se considera el registro de estado, esto quiere decir que la condición
depende directamente de la instrucción anterior. En la siguiente tabla se presentan
estas instrucciones en función del tipo de operandos y la condición que se quiere
evaluar.
También existen instrucciones que evalúan sólo un bit del registro de estado.

Estos saltos son siempre relativos, es decir, una dirección de 8 o 16 bits

También podría gustarte