Ejercicios adicionales para el Examen Final

 

 

Tabla a utilizar en el examen para los ejercicios de programación:

Mnemotécnico

Mnemotécnico

Mnemotécnico

Mnemotécnico

 

MOV destino,origen

 

ADD destino,origen

 

ADC destino,origen

 

DAA

 

SUB destino,origen

 

INC registro

 

DEC registro

 

CMP destino,origen

 

RCL registro

 

RCR registro

 

SHL registro

 

SHR registro

 

ROL registro

 

ROR registro

NOT registro

 

AND destino,origen

 

OR destino,origen

 

XOR destino,origen

 

CLC

STC

HLT

 

JZ dirección

JNZ dirección

JO dirección

JNO dirección

JS dirección

JNS dirección

JB dirección

JNB dirección

JE dirección

JNE dirección

JLE dirección

JL dirección

JGE dirección

JG dirección

Jmp direccion

 

1.        Complete:

a.        Se entiende por vector de interrupciones ___________________________

b.       La pila es ______________________________________

c.        El controlador de interrupciones tiene la siguiente funcionalidad: ____________________

d.       La bandera IF se utiliza para ________________________________________

e.        Los cuatro registros utilizados para el manejo de los segmentos de memoria en el microprocesador 8086 son _____________.

f.         Los métodos utilizados por el CPU  para conectarse con los puertos son: _________________ y ___________________.

g.       La pila LIFO funciona de la siguiente manera: ______________________________.

h.       Cuando en un programa se salta a una subrutina, la dirección de retorno de la subrutina se guarda en un segmento de memoria llamado _____________________.

i.         La transferencia por DMA se puede realizar de dos formas: _____________ y _____________.

j.         En presencia de una interrupción automáticamente se apila lo siguiente: ______________________

2.        Explique detalladamente los diferentes métodos que utiliza un microprocesador para comunicarse con los puertos.

3.        Realice un programa en lenguaje ensamblador que revisa si el número de bits es par para cada byte que se encuentra en un segmento de memoria. Si encuentra en el segmento de memoria un byte con un número par de bits, pone en uno el bit más significativo de la posición 0A11 (este bit debe ponerse en 0 antes de comenzar a analizar el segmento de memoria).
En la dirección 0A12  y 0A13 está  almacenada la parte baja y alta respectivamente de la dirección donde se inicia el segmento. En 0A0F se encuentra la longitud de este segmento.

 

Ej:            01101101 tiene un número impar de unos ( 5 unos).

                10111101 tiene un número par de unos ( 6 unos).

4.        Explique detalladamente como funciona el DMA

5.        Realice un programa en lenguaje ensamblador que indique la cantidad de números pares y la cantidad de números impares que se encuentran en un segmento de memoria. Al final del programa en la dirección 0A10 debe quedar la cantidad de números pares que encontró en el segmento y en la dirección 0A11 la cantidad de números impares que encontró en el segmento. En la dirección 0A12  y 0A13 está  almacenada la parte baja y alta respectivamente de la dirección donde se inicia el segmento. En 0A0F se encuentra la longitud de este segmento.

6.        Realice un programa en lenguaje ensamblador que compara un número almacenado en la posición 0A10 con un segmento de memoria que contiene números. Cada vez que encuentra en el segmento de memoria un número mayor al de la posición 0A10 incrementa un contador que está en la posición 0A11.
En la dirección 0A12  y 0A13 está  almacenada la parte baja y alta respectivamente de la dirección donde se inicia el segmento. En 0A0F se encuentra la longitud de este segmento.

7.        Explique detalladamente los diferentes métodos que utiliza un microprocesador para comunicarse con los puertos.

8.        Explique por medio de un diagrama cada uno de los siguientes modos de direccionamiento:

 

Implícito:

Inmediato:

Directo:

Indirecto:

 

9.        Realice un programa en lenguaje ensamblador que compara un número almacenado en la posición 0A10 con un segmento de memoria que contiene números. Cada vez que encuentra en el segmento de memoria un número igual al de la posición 0A10 incrementa un contador que está en la posición 0A11.
En la dirección 0A12  y 0A13 está  almacenada la parte baja y alta respectivamente de la dirección donde se inicia el segmento. En 0A0F se encuentra la longitud de este segmento

10.     Realice un programa en lenguaje ensamblador que compara un número almacenado en la posición 0A10 con un segmento de memoria que contiene números. Cada vez que encuentra en el segmento de memoria un número cuyos tres bits más significativos sean iguales a los tres bits más significativos del número almacenado en la posición 0A10 incrementa un contador que está en la posición 0A11.
En la dirección 0A12  y 0A13 está  almacenada la parte baja y alta respectivamente de la dirección donde se inicia el segmento. En 0A0F se encuentra la longitud de este segmento.

11.     Por medio de en un dibujo, explique detalladamente el proceso de atención de interrupciones. Incluya en su explicación la definición y uso de cada uno de los siguientes términos: INTR, NMI, Subrutina de interrupciones, Pila, vector de interrupciones.

12.     Por medio de un dibujo explique claramente como los diferentes dispositivos I/O pueden interrumpir al CPU y como responde este. Dentro de este esquema se debe mencionar el uso del vector de interrupciones, el programa de atención de interrupciones y la bandera de interrupciones.

13.     Realice un programa  en lenguaje ensamblador que examina byte a byte el contenido de un segmento de memoria. En la dirección 0A12  y 0A13 está  almacenada la parte baja y alta respectivamente de la dirección donde se inicia el segmento. En 0A0F se encuentra la longitud de este segmento. Cada vez que el programa encuentra dentro de este segmento, un byte cuyo MSB (bit más significativo) tiene el valor de uno, copia este byte en otro segmento de memoria. La parte baja y alta respectivamente de la dirección donde se inicia este segundo segmento está almacenada en la dirección 3F14 y 3F15. En 0A10 se encuentra la longitud de este segundo segmento.

Hosted by www.Geocities.ws

1