Está en la página 1de 7

Jessica Rodríguez Pérez

1. ¿Qué son interrupciones? Cite los 3 tipos de interrupciones que existen

Una petición de interrupción IRQ ("Interrupt Request") es una señal que se origina en un
dispositivo hardware (por ejemplo, un periférico), para indicar al procesador que algo requiere
su atención inmediata;  se solicita al procesador que suspenda lo que está haciendo para
atender la petición.

En el PC existen tres tipos de interrupciones: 

• Interrupciones hardware

• Interrupciones software

• Excepciones del procesador.

2. Explique en que consisten las interrupciones de hardware y las dos formas en que se
presentan.

Ocurren cuando un dispositivo necesita atención del procesador y genera una señal eléctrica
en la línea IRQ que tiene asignada.  Esta señal es recogida y procesada por el controlador de
excepciones PIC antes de ser enviada al procesador, lo que puede realizarse de dos formas,
según el tipo de interrupción sea enmascarable o no enmascarable.

Enmascarable: Significa que, bajo control del software, el procesador puede aceptar o ignorar
(enmascarar) la señal de interrupción.  Para ello se envía una señal a la patilla INTR, y el
procesador la atiende o la ignora en función del contenido de un bit (IF) en un registro (FLAGS)
que puede estar habilitado o deshabilitado.  

No enmascarable: Significa que la interrupción no puede ser deshabilitada por software.  Este
tipo de interrupciones ocurren cuando se recibe una señal en la patilla NMI ("Nonmaskable
Interrupt") del procesador.  Se reservan para casos en que es crítica la respuesta, por ejemplo
que se detecte un error de paridad en la memoria.  Además son de prioridad más alta que las
enmascarables.

3. ¿Cuál es el orden de prioridad al ocurrir dos interrupciones de manera simultánea?

Las interrupciones tienen un orden de prioridad, de forma que si ocurren dos de forma
simultánea es atendida la de prioridad más alta.  El orden en que se atienden es el siguiente:

1º  Excepciones del procesador.

2º  Interrupciones software.

3º  Interrupciones hardware no enmascarables.

4º  Interrupciones hardware enmascarables.


4. Cite y explique 4 características dl lenguaje ensamblador.

El código escrito en lenguaje Assembly posee una cierta dificultad de ser entendido
directamente por un ser humano ya que su estructura se acerca más bien al lenguaje máquina,
es decir, lenguaje de bajo nivel.

El lenguaje Assembly es difícilmente portable, es decir, un código escrito para un


microprocesador, suele necesitar ser modificado, muchas veces en su totalidad para poder ser
usado en otra máquina distinta, aun con el mismo microprocesador.

Los programas hechos en lenguaje Assembly son generalmente más rápidos y consumen
menos recursos del sistema (memoria RAM y ROM). Al programar cuidadosamente en
lenguaje Assembly se pueden crear programas que se ejecutan más rápidamente y ocupan
menos espacio que con lenguajes de alto nivel.

Los ensambladores modernos, especialmente para arquitecturas basadas en RISC que pueden
ejecutar varias instrucciones simultáneamente, optimizan las instrucciones para explotar al
máximo la eficiencia de segmentación de la CPU.

5. Las sentencias del lenguaje ensamblador pueden ser de dos tipos. Cite y explique cada
uno de ellos.

Instrucciones. Estas sentencias representan órdenes al procesador y tras el proceso de


compilación generan código ejecutable.

Directivas. Estas sentencias dirigen el proceso de compilación o construcción del programa


ejecutable. No generan código ejecutable. Normalmente se utilizan para aumentar la
legibilidad del código fuente.

6. Señale cual es la diferencia entre el programa fuente y el programa objeto.

El programa fuente describe el argumento escrito por el programador que da inicio al


desarrollo de su obra de software.

El programa objeto es el lenguaje que utiliza el programador para diseñar los pasos a ejecutar
por la computadora, para que sea entendible y más fácil de utilizar por él.

El Programa Objeto es aquel programa que resulta de la traducción del lenguaje fuente
(lenguaje entendible por el ser humano) a un lenguaje máquina, es decir a aquel que es
inteligible por la computadora.
7. Cite 5 características de las directivas de lenguaje ensamblador

 No son órdenes destinadas al microprocesador, sino al programa ensamblador


 No tienen traducción a código máquina.
 Son similares a las instrucciones.
 Representan características del lenguaje ensamblador
 Se usan para especificar el procesador empleado.
 También para asignar locaciones de memoria.

8. Indique para qué sirve cada una de las siguientes directivas: PUBLIC, SEGMENT,
ASSUME, PROC, MACRO, RADIX, DIRECTIVAS CONDICIONALES, DE LISTADO.

PUBLIC Permite que los símbolos especificados sean accesibles por otros módulos durante un
enlazado conjunto (LINK).
SEGMENT: Indica el comienzo del segmento “nombre”.
ASSUME: Indica al ensamblador el registro de segmento que va a utilizar para direccionar cada
segmento dentro del módulo.
PROC (PROCEDURE): Indica el comienzo del procedimiento
MACRO: Especifica el nombre y los parámetros de la macro.
.RADIX: Sirve para cambiar la base de numeración por defecto. Por defecto los números están
en base 10.
CONDICIONALES: Sirven para que el ensamblador incluya o ignore porciones de programa
fuente según una condición en tiempo de ensamblaje.
DE LISTADO: Indican al ensamblador la información a obtener en el listado de salida y el
formato de esa información.

9. ¿Qué se conoce como una subrutina y de que manera se utiliza?

Una subrutina o subprograma, es un fragmento de código que va a ser usado múltiples veces
en el programa y que permite resolver una tarea específica.

Este código se escribirá una sola vez y se le pondrá una etiqueta. Las etiquetas se sitúan a la
izquierda de las instrucciones y sirven para agrupar fragmentos de código. Desde el programa
principal se llamará a éste código por su nombre cada vez que se quiera ejecutar.

10. Defina que es la transferencia de datos y cite de que maneras se puede dar.

La transferencia de datos es un proceso en el cual se mueven datos de un lugar en específico a


otro.

La transferencia de datos puede ser de registro a registro, de registro a memoria, o de


memoria a registro y viceversa.
11. Explique los siguientes lenguajes de programación: Lenguaje Ensamblador, Lenguaje
de Alto Nivel y Lenguaje Máquina.

El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas
informáticos, y constituye la representación más directa del código maquina

Lenguaje de Alto Nivel: Es un conjunto de símbolos y reglas sintácticas y semánticas que


definen su estructura y el significado de sus elementos y expresiones. Estos lenguajes se
caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva
humana, en lugar de a la capacidad ejecutora de las máquinas. Es decir, es aquel que se
aproxima más al lenguaje natural humano que al lenguaje binario de las computadoras.

Lenguaje Máquina: Es el único que entiende directamente la computadora, utiliza el alfabeto


binario que consta de los dos únicos símbolos 0 y 1, denominados bits. Fue el primer lenguaje
utilizado en la programación de computadoras, pero dejó de utilizarse por su dificultad y
complicación.

12. Cite dos ventajas y dos desventajas del lenguaje de alto nivel.

Ventajas:

• Genera un código más sencillo y comprensible.

• Escribir un código válido para diversas máquinas y, posiblemente, sistemas operativos

Desventajas:

• Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina.

• Algunos requieren que la máquina cliente posea una determinada plataforma.

13. Defina Vector de interrupción y como funciona.

Un vector es un número de identificación al a interrupción para un mejor manejo por parte del
procesador.

El vector (numero) funciona como índice dentro de la tabla de descripciones para localizar la
dirección de inicio de la rutina del manejador asociado

14. Cual es la funcionalidad de la memoria dinámica

Es un espacio de almacenamiento que se solicita en tiempo de ejecución. Se refiere a aquella


que no puede ser definida ya que no se conoce o no se tiene idea del número de la variable a
considerarse, la solución a esto es la memoria dinámica que permite solicitar memoria en
tiempo de ejecución real, por lo que mientras mas memoria se necesite, esta se va pidiendo al
sistema operativo

15. Cite y explique al menos 5 tipos de direccionamiento:

Direccionamiento implícito:
El modo implícito se usa para hacer referencia a operandos de dos tipos:
Registros: En el caso de que el código de operación se refiera en particular a un registro.
Operandos en la pila: En el caso de que la operación se realice siempre sobre el dato situado
en la cima de pila.
Direccionamiento inmediato:
En este modo es el operando el que figura en la instrucción no su dirección. En otras palabras
el campo de operando contiene él mismo, sin transformación alguna, la información sobre la
que hay que operar.
Direccionamiento directo por registro:
El operando reside en uno de los registros del procesador que es seleccionado por un campo
de registro de k bits en la instrucción.
Direccionamiento directo:
Es el más sencillo. El campo de dirección no necesita transformación alguna para dar la
dirección efectiva. Esto significa que el campo de operando es ya la dirección efectiva.
Direccionamiento indirecto:
En este modo el campo de operando de la instrucción indica la localización de la dirección
efectiva del operando.
Direccionamiento relativos:
Hay algunos modos de direccionamiento en que se hace uso de una propiedad muy
generalizada de los programas denominada localidad de referencia, esta propiedad consiste en
que las direcciones referenciadas por los programas no suelen alejarse mucho unas de otras y,
por tanto, suelen estar concentradas en una parte de la memoria.
Direccionamiento por base y desplazamiento
La dirección que se toma como referencia de la zona de memoria en la que están localizados
los datos se deposita en un registro denominado registro base y el campo de operando indica
la diferencia entre el registro base y la dirección M operando.
Direccionamiento indexado:
En este modo de direccionamiento, la dirección del operando también se calcula sumando un
registro de la CPU al campo de operando
Direccionamiento autoincremental:
En este modo, la dirección del operando se encuentra en un registro y éste es incrementado,
después de acceder al operando, en el tamaño del mismo.
Direccionamiento autodecremental:
En este modo para obtener la dirección del operando hay que decrementar un registro en el
tamaño del operando; el nuevo contenido del registro después de efectuar esa operación, es la
dirección del operando.
16. ¿Qué son instrucciones lógicas? Mencione y explique 2 ejemplos.
Las instrucciones lógicas actúan bit a bit sobre datos de 8, 16, ó 32 bits y cuatro para manejar
bits individuales sobre datos de 8 ó 32 bits.

AND: es la Y lógica. Admite todos los modos de direccionamiento para el operando fuente
menos direccionamiento directo  a registro de direcciones, mientras que el operando destino
admite también todos menos los direccionamientos relativos a PC.
ANDI: realiza la misma función que AND, pero su direccionamiento es inmediato en el
operando fuente y todos menos el direccionamiento directo a registro de direcciones y
relativos a PC.
EOR: es el O exclusivo. Admite únicamente el direccionamiento directo a registro de datos
para el operando fuente, mientras que el operando destino admite también todos menos los
direccionamientos directo a registro de direcciones y los relativos a PC.
EORI: realiza la misma función que EOR, pero su direccionamiento es inmediato en el
operando fuente y todos menos el direccionamiento directo a registro de direcciones y
relativos a PC.
NOT: complementación lógica.
OR: es la O lógica. Admite todos los modos de direccionamiento para el operando fuente
menos direccionamiento directo  a registro de direcciones, mientras que el operando destino
admite también todos menos los direccionamientos relativos a PC y directo a registro de
direcciones.
ORI: realiza la misma función que OR, pero su direccionamiento es inmediato en el operando
fuente y todos menos el direccionamiento directo a registro de direcciones y relativos a PC.
TST: (Test) comprueba un operando. Los flags V y C se ponen a 0.
SCC : comprueba los códigos de condición y pone a 1 el operando. Es de tamaño byte.

17. ¿Qué son las instrucciones de desplazamiento y rotación? Explique 2 ejemplos.


Se caracterizan por desplazar o rotar el operando bit a bit a la derecha o a la izquierda. El
operando destino, que es el afectado por el desplazamiento o por la rotación siempre será un
registro de datos.

ASL: (Arithmetic Shift Left) desplaza a la izquierda los bits del operando destino. El número de
desplazamientos viene indicado por el operando origen. . El flag V se pone a 1 si el bit más
significativo cambia en algún momento y C es el valor del último bit desplazado fuera del
operando destino.

ASR: (Arithmetic Shift Right) desplaza a la derecha los bits del operando destino. El número de
desplazamientos viene indicado por el operando origen. El flag V se pone a 0, y el C es el valor
del último bit desplazado fuera del operando destino.

ROL: (Rotate Left) rota a la izquierda los bits del operando destino. El número de
desplazamientos viene indicado por el operando origen. El flag C es el valor del último bit
desplazado fuera del operando destino.

ROR: (Rotate Right) rota a la derecha los bits del operando destino. El número de
desplazamientos viene indicado por el operando origen. El flag C es el valor del último bit
desplazado fuera del operando destino.
18. ¿Qué es un diagrama de bloques ? Cual es su importancia?

Un Diagrama de Bloques es la representación gráfica de las funciones que lleva a cabo cada
componente y el flujo de señales donde cada función de transferencia tiene un bloque
asignado y éstos se unen por flechas que representan el flujo de señales. Es una simple
representación gráfica del esquema eléctrico.

Permiten entender el comportamiento y conexión del sistema y a su vez, esta descripción


puede ser programada en simuladores que tienen un ambiente gráfico.

19. ¿De que se encarga el reloj en una computadora?

El reloj es la parte de la CPU que proporciona una sucesión de impulsos eléctricos (llamados
ciclos) a intervalos constantes. Cada sucesión marca el instante que debe comenzar un paso de
una instrucción.
Las frecuencias de relojes de los microprocesadores se miden en hertz. Las instrucciones que
realiza un procesador necesitan de 2 a 206 ciclos para concretarse.

20. Explique los 4 eventos que se llevan a cabo en cada ciclo de instrucción

1 Buscar la instrucción en la memoria principal


Se vuelca el valor del contador del programa sobre el bus de direcciones. Entonces la CPU pasa
la instrucción de la memoria principal a través del bus de datos al Registro de Datos de
Memoria (MDR). A continuación el valor del MDR es colocado en el Registros de Instrucción
Actual (CIR), un circuito que guarda la instrucción temporalmente de manera que pueda ser
decodificada y ejecutado.
2 Decodificar la instrucción
El decodificador de instrucción interpreta e implementa la instrucción. El registro de
instrucción (IR) mantiene la instrucción en curso mientras el contador de programa (PC,
program counter) guarda la dirección de memoria de la siguiente instrucción a ser ejecutada.
También se lee la dirección efectiva de la memoria principal si la instrucción tiene una
dirección indirecta, y se recogen los datos requeridos de la memoria principal para ser
procesados y colocados en los registros de datos.
3 Ejecutar la instrucción
A partir del registro de instrucción, los datos que forman la instrucción son decodificados por
la unidad de control. Ésta interpreta la información como una secuencia de señales de control
que son enviadas a las unidades funcionales relevantes de la CPU para realizar la operación
requerida por la instrucción.
4 Almacenar o guardar resultados
El resultado generado por la operación es almacenado en la memoria principal o enviado a un
dispositivo de salida dependiendo de la instrucción. Basándose en los resultados de la
operación, el contador de programa se incrementa para apuntar a la siguiente instrucción o se
actualiza con una dirección diferente donde la próxima instrucción será recogida.

También podría gustarte