martes, 15 de septiembre de 2020

Asignatura: Sistemas Digitales II

Profesora: Dora Aguerre

Curso: 6° Informática

 INTRODUCCIÓN A LOS MICROPROCESADORES


1. HISTORIA DE LOS MICROPROCESADORES

El primer microprocesador fue el 4004 de Intel, y apareció en el mercado en 1971. Este hecho fue accidental y se debió a un contrato entre la empresa Intel y una compañía japonesa de calculadores para el desarrrollo de un circuito integrado para dicho producto. El desarrollo no fue aceptado y la firma Intel se decidió por su comercialización. El 4004 era un microprocesador de 4 bits realizado con tecnología PMOS.

El NMOS (Negative-channel Metal-Oxide Semiconductor) es un tipo de semiconductor que se carga negativamente de modo que los transistores se enciendan o apaguen con el movimiento de los electrones. En contraste, los PMOS (Positive-channel MOS) funcionan moviendo las valencias de electrones. El NMOS es más veloz que el PMOS, pero también es más costosa su fabricación.

El siguiente suceso importante en la historia de los microprocesadores fue la introducción del 8008 de Intel en 1972, que consistía en un microprocesador de 8 bits con tecnología PMOS.

Intel, que por aquel entonces se dedicaba fundamentalmente a la fabricación de memorias se decidió a comercializarlo pensando sobre todo en vender más memorias. Ante su sorpresa, las ventas del 8008 crecieron rápidamente e inmediatamente se dieron cuenta de la gran importancia de este nuevo producto, el microprocesador; para el siguiente año 1973, Intel lanzó al mercado el sucesor del 8008, el 8080 en tecnología NMOS y por tanto más rápido (unas diez veces más que el 8008).

Posteriormente los competidores de Intel desarrollaron sus propias versiones, Motorola el 6800, Rockwell el PPS8, Signetics el 2650.

La tercera generación de micros de 8 bits fueron los sucesores del 8080 y 6800, tales como el Z80 de Zilog, el 8085 de Intel, el 6502 de Rockwell y Mos Technology, y también los microcomputadores monopastilla el 8048 de Intel, el PPS4 de Rockwell, el TMS 1000 y el 9940 de Texas Instruments.

En la actualidad hay disponibles en el mercado microprocesadores de 16 y 32 bits. Entre ellos podemos citar de la casa Motorola los microprocesadores 68000, 68008, 68020; de la casa Intel los 8086, 80186, 80286, 80386, 80486, Pentium y el Z8000 de Zilog.

Cuando hablamos de 64 bits nos referimos, generalmente, al tamaño de cualquier estructura de datos que, en este caso, permite almacenar 64 bits de 'algo'. Puede ser el género de un alumno, su edad o su estatura. En estos dos últimos casos debemos tener en cuenta que cada alumno ocupa más de un bit, ya que la información no puede ser representada sólo con 0 o 1.

Decimos que un procesador tiene una arquitectura de 64 bits cuando sus registros tienen espacio para almacenar 64 bits. 'Registro' es una palabra que silenciosamente hemos utilizado anteriormente, y que técnicamente se refiere a un pequeño espacio de almacenamiento físico dentro de los procesadores donde se pueden guardar 64 0 o 1. Existen registros por prácticamente cualquier componente, ya sean de 64 bits o de otro tamaño.

La mejor y más sencilla representación para un registro de 64 bits sería, simplemente, 64 huecos numerados (del 0 al 63), con espacio para almacenar ceros o unos.

2. VENTAJAS DE LOS MICROPROCESADORES

Los microprocesadores están desplazando a la electrónica tradicional de una parte importante de sus campos de aplicación y encontrando utilidades en casi todos los campos. Las dos ventajas más importantes del microprocesador son:

1) Emplear menos componentes.

Un sistema microcomputador al emplear menos componentes reduce el tamaño del equipo, su consumo y aumenta la fiabilidad al realizar menos conexiones. Estas características reducen el coste del sistema.

2) Programabilidad.

En los sistemas clásicos realizados mediante lógica cableada, cada producto realizaba una única función sin posibilidad de poder modificar el trabajo realizado a no ser que se cambiara el diseño. Un sistema programable permite modificar la función que realiza sin más que variar el programa. Dicho en pocas palabras, la programación permite disponer de módulos estándar de hardware, de forma que cambiando el programa (software) la tarea que realiza el sistema es distinta.

La máquina programada ejecuta un conjunto de operaciones básicas que se realizan al recibir  el código de operación de cada instrucción. En cada aplicación las instrucciones a realizar se ordenan adecuadamente formando un programa.

La unidad central de proceso CPU consta de un subsistema de proceso y otro de control. La unidad de control decodifica las instrucciones del programa y genera las señales de control para que la unidad de proceso (ALU) ejecute dichas instrucciones. Además suministra las señales de control de los componentes que componen el sistema. Las instrucciones que constituyen el programa se almacenan en una memoria que también contiene los datos que procesa y obtiene la máquina.

La máquina programada necesita de unos elementos de adaptación con los periféricos que le comunican con el mundo exterior. Se encargan de transmitir datos a procesar o resultados que se obtienen en el proceso, son los módulos de entrada-salida I/O.

 

3. EL MICROPROCESADOR

Vamos a intentar acotar los límites actuales de lo que los fabricantes y usuarios llaman microprocesador. A lo largo de los cursos de electrónica se desarrollan unos subsistemas digitales cada vez más complejos (puertas, circuitos combinacionales, circuitos secuenciales) que se integran en pastillas y que interconectados pueden realizar operaciones de procesos de datos.

Un microprocesador sería un conjunto de tales circuitos, integrados e interconectados todos sobre un único substrato semiconductor, de forma que puede realizar una secuencia de operaciones aritméticas y lógicas controladas.

Hay una serie de matices que conviene observar:

1.- El microprocesador realiza una secuencia de operaciones, pero esta secuencia no es única, sino que es programable mediante instrucciones. Las instrucciones residen en una memoria a la que accede el microprocesador, extrae una instrucción, la decodifica, la ejecuta y vuelve por otra instrucción y así sucesivamente, salvo que reciba una instrucción de parar.

Las operaciones que implica cada instrucción (microprogramación firmware) se realizan en sincronismo con un tren de impulsos RELOJ. El microprocesador se relaciona en el exterior mediante unos caminos de datos (BUSES) que permiten el intercambio de información digital entre el microprocesador y el exterior.

Se puede decir que un microprocesador es una parte de un ordenador, la encargada del control y el proceso de la información llamada CPU (unidad central de proceso).

Se podría pensar que la CPU de un ordenador es un microprocesador, a veces es así, pero también la CPU puede realizarse por medio de subsistemas MSI y LSI interconectados (puertas, registros, contadores, sumadores, etc.). La mayor parte de los ordenadores personales emplean un microprocesador como CPU. Un microprocesador no es capaz de hacer nada por sí solo, necesita como mínimo una memoria de la que extraer las instrucciones y unidades de entrada salida I/O para comunicarse con el mundo exterior. El conjunto formado por el microprocesador, memoria y unidades de I/O suele denominarse sistema microprocesador y es equivalente a un ordenador.

Generalmente los fabricantes, además del microprocesador fabrican las memorias, las unidades de entrada-salida y otros periféricos que permiten al usuario realizar un sistema microprocesador a la medida de sus necesidades.

2.- El microprocesador es un circuito integrado realizado en VLSI sobre un único substrato. Este concepto también puede ampliarse, ya que existen microprocesadores que incluyen memoria y puertas de entrada salida (microcontroladores monopastilla).

 

4. CONFIGURACIÓN DE UN SISTEMA MICROPROCESADOR

Se compone de tres bloques enlazados por buses. Esta estructura corresponde a la organización de Von Newmann.

Los buses son de tres tipos dependiendo del tipo de información que transporten :

- Bus de datos. Circulan los datos que llegan o salen del procesador por la unidad de entradas-salidas, o los resultados parciales que la CPU lee o escribe en memoria. El bus de datos es bidireccional.

- Bus de direcciones. Partiendo del microprocesador, envía en todo momento la dirección de la posición de memoria o periférico donde se encuentra la instrucción o el dato que se debe procesar. El bus de direcciones es unidireccional.

- Bus de control. Por el que el microprocesador transmite y recibe señales que controlan el funcionamiento de todo el sistema.

4.1. UNIDAD DE ENTRADA-SALIDA

Contiene una serie de registros, puertas y controles que permiten la conexión al microprocesador de una serie de periféricos de comunicación con el exterior. De esta forma la CPU tiene una única entrada-salida independiente del tipo de periférico que se conecte.

Los periféricos que se conecten dependerán de la aplicación, por ejemplo teclado, CRT, modem, convertidor A/D, sensores, relés, displays, señalizaciones, etc.

4.2. MEMORIAS

Almacenan la información del sistema. Son de dos tipos :

- RAM para almacenar datos variables, también pueden almacenar programas, aunque éstos se perderían al dejar de alimentar al sistema. Su capacidad es variable y depende de la capacidad de direccionamiento del microprocesador. Generalmente es modular, componiéndose de uno o varios circuitos integrados. La longitud de la palabra de memoria viene impuesta por la CPU; para microprocesadores de 8 bits se necesitarán memorias cuyas palabras tengan 8 bits (1 byte).

- ROM se emplean para almacenar el programa y datos fijos, Respecto a la capacidad y longitud hay que decir lo mismo que para las RAM.

4.3. FUNCIONES Y CARACTERÍSTICAS DEL MICROPROCESADOR (CPU)

Es la parte encargada del control y realiza las operaciones aritméticas y lógicas del proceso de datos.

Las funciones básicas de la CPU son :

1. Decodificar las instrucciones que extrae de la memoria.

2. Generar las señales de control para la ejecución de las instrucciones.

3. Ejecución de las instrucciones por medio de la unidad arimética y lógica (ALU).

4. Almacenamiento temporal de los datos en proceso mediante registros.

5. Generación de señales de tiempos que marcan el ritmo del proceso.

Las características más importantes de la CPU son :

1. Tamaño de la palabra que es capaz de procesar. Este tamaño viene determinado por la longitud de sus registros y por la longitud de la palabra que puede procesar la ALU.

2. Juego de instrucciones que el microprocesador puede ejecutar.

3. Posibilidad de interrupciones, que permiten alterar la secuencia normal del programa debido a una causa externa.

4. Registros de trabajo.

5. Tiempo de ciclo de instrucción que es el tiempo medio que tarda el microprocesador en buscar y ejecutar una instrucción.

 

5. ARQUITECTURA DE LOS MICROPROCESADORES (8 bits).

Como puede observarse en la figura 2, consta de los siguientes elementos.

 

5.1. REGISTROS DE DIRECCIONAMIENTO PC, SP, IX.

Son registros dobles de 16 bits destinados a almacenar direcciones. Están conectados al bus de direcciones a través del registro de direcciones AR (Address Register).  Estos registros se dividen en dos bytes, el byte de mayor peso se denomina H (high) y el byte de menor peso L (low).

5.1.1. Contador de programa PC (Programa Counter)

Proporciona en cada momento la dirección de la memoria donde se encuentra la siguiente instrucción que hay que ejecutar.

El contenido del PC se manda al bus de direcciones a través del registro de direcciones AR, seleccionándose la posición de memoria que contiene el código de operación de la instrucción, esta información se transfiere al bus de datos hasta el registro de datos DR y al registro de instrucciones IR (en la fase de búsqueda), el decodificador de instrucciones de la unidad de control decodifica la instrucción y produce las señales de control necesarias para ejecutar la instrucción en curso. Una vez finalizada la instrucción el PC se actualiza (incrementos de 1, 2 ó  3 unidades) conteniendo la dirección de la siguiente instrucción.

Únicamente en casos de ruptura de secuencia de programa, se producen cambios bruscos en el contenido del contador del programa.

5.1.2. Puntero de la pila SP (Stack Pointer)

La pila (stack) es una memoria de lectura-escritura tipo LIFO (last input-first output) último en entrar primero en salir, y resulta indispensable para trabajar con interrupciones y subrutinas. El puntero de la pila SP contiene la dirección del último byte introducido en el stack. El puntero de la pila es un registro doble de 16 bits. La gestión de la pila se realiza por programa  software).

5.1.3. Registro índice IX

El indexado es un modo de direccionamiento (forma de obtener el operando de una instrucción) que no disponen todos los microprocesadores. La dirección donde se encuentra el operando se obtiene sumando o restando un desplazamiento al contenido del registro índice  IX.

5.1.4. Registro de direcciones AR (Address Register)

Los registros de direccionamiento citados PC, SP, IX transfieren sus contenido al bus de direcciones externo a través del registro de direcciones AR. Básicamente este registro actúa como buffer para las señales que salen al bus de direcciones.

5.2. REGISTROS DE DATOS

Son registros de 8 bits, aunque algunos microprocesadores pueden actuar sobre dos de ellos de forma simultánea, actuando en este caso como un único registro de 16 bits.

5.2.1. Registros de propósito general

Son necesarios pues contienen operandos que pueden ser manejados por la ALU de una forma más rápida que si estuvieran en memoria. Son registros de 8 bits conectados al bus de datos bidireccional interno. La finalidad de estos registros no está prefijada de antemano y por esta razón se denominam de propósito general.

5.2.2. El acumulador –A

En todos los microprocesadores muchas de las operaciones que realiza la ALU (unidad aritmética y lógica) uno de los operandos está contenido en el registro denominado acumulador A, el otro operando le llega a la ALU a través del bus de datos interno procedente de otro registro interno, de la memoria o de algún periférico. El resultado de la operación realizada por la ALU se deposita en el acumulador. Las operaciones de entrada-salida a los periféricos se realizan a través del acumulador. El acumulador es un registro de mucha importancia sobre el que se realizan operaciones de lectura, escritura y cálculo.

5.2.3. Registro de datos –DR

Tiene una función similar al registro de direcciones AR, transmite las señales al bus de datos reforzando el nivel de las mismas. Este registro, a diferencia del AR, es bidireccional.

5.3. REGISTRO DE INSTRUCCIONES –IR

La primera fase en la ejecución de una instrucción es la fase de búsqueda (opcode Fetch) en la que se lee el código de operación de la instrucción (1 byte) de la memoria. Este código de  operación, una vez leído, se almacena en el registro de instrucción IR. En una segunda fase la unidad de control decodifica el código de operación y genera las señales de control adecuadas para la ejecución de dicha instrucción.

5.4. REGISTRO DE ESTADOS (FLAGS)

En realidad este registro puede considerarse como una serie de registros de 1 bit, denominados bits de condición o flags. Estos bits pueden modificarse por ciertos resultados producidos en operaciones realizadas por la ALU. Estos bits pueden ser consultados por algunas instrucciones, sobre todo en las de ruptura de secuencia condicional.

5.4.1. Acarreo -C- (Carry)

El bit de acarreo tiene dos funciones distintas:

a) Acarreo aritmético, es decir el noveno bit que puede generarse durante una operación aritmética. Es un desbordamiento del resultado de ocho bits, por ejemplo al sumar:

                              1 1 1 1 1 1 0 0

                              1 0 0 0 0 0 0 1

                                 -----------------

       Carry =       1 0 1 1 1 1 1 0 1

b) El acarreo sirve también como posición de desbordamiento durante operaciones de rotación y desplazamiento. El acarreo en este caso es como el noveno bit del registro.

5.4.2. Bit de signo –S

Está conectado al bit 7 (MSB) del resultado. En las operaciones en complemento a dos el bit 7 es el bit de signo. Un 1 en este bit indica que el número es negativo.

5.4.3. Bit de cero –Z

Este bit se pone a "1" si el resultado de la operación es cero.

5.4.4. Bit de paridad –P

Este bit informa sobre el número de bits que toman el valor lógico 1 en un registro (normalmente el acumulador), se suele emplear para detectar si ha habido errores en la recepción. Si se trabaja con paridad par, el bit de paridad se pondrá a "1", si el número de unos es par.

5.4.5. Bit del estado de las interrupciones –I

Este bit indica si las interrupciones están permitidas o no. Por ejemplo si está a "1" las interrupciones están permitidas, mientras que si está a "0" estarían bloqueadas. Los registros de condición junto con el acumulador se denominan palabra de estado del programa PSW (Program Status Word). Es la información imprescindible que se debe guardar (en el stack) cuando se suspende un programa, por ejemplo, debido a la aceptación de una interrupción. En muchos casos se guarda el contador del programa PC, PSW y los registros generales, de esta forma se podrán recuperar toda esta información al volver al punto del programa donde éste se encontraba cuando se suspendió y en el mismo estado.

La mayor parte de las instrucciones realizadas por el procesador influyen en los registros de condición, siendo muy importante conocer en cada caso qué bits de estado modifican.

5.5. UNIDAD ARITMÉTICA Y LÓGICA ALU

Realiza las operaciones aritméticas, lógicas de desplazamiento y de rotación. El acumulador puede ser fuente y destino de una operación. Normalmente en el acumulador se encuentra uno de los operandos, el otro operando se suministra a través del bus de datos interno procedente de un registro interno, memoria o periférico y el resultado se deposita en el acumulador. Las operaciones realizadas por la ALU pueden modificar los registros de estado.

5.6. UNIDAD DE CONTROL

Dotada del decodificador de instrucciones; este elemento recibe el código de operación de las instrucciones desde la memoria por el bus de datos, almacenándolo temporalmente en el registro de instrucciones IR. El decodificador de instrucciones lo interpreta, generando las  señales de control adecuadas para ejecutarla. La unidad de control genera las señales de sincronismo para la ALU, la memoria y los circuitos de entrada-salida. Se comunica con el resto del sistema con el bus de control. Las líneas del bus de control podríamos clasificarlas en los siguientes tipos:

5.6.1. Control de lectura-escritura

Gobiernan las operaciones de lectura y escritura entre el microprocesador y los circuitos externos de memoria o periféricos de entrada-salida.

Orden de lectura RD (Read) (Salida).

Orden de escritura WR (Write) (Salida).

Algunos microprocesadores distinguen entre memoria y dispositivos de entrada-salida mediante una línea de control IO/M (entrada-salida/memoria). En estos casos el microprocesador dispone de instrucciones específicas de entrada-salida, ocupando un mapa de memoria específico para periféricos distinto del mapa de memoria propiamente dicho. En caso contrario se reserva dentro del espacio de direcciones de memoria una parte para asignarlo a entrada-salidas.

5.6.2. Control de interrupciones

Petición de interrupción INTR (Entrada)

Reconocimiento de interrupción INTA (Salida)

Hay microprocesadores que pueden tener más líneas de interrupción.

5.6.3. Acceso directo a memoria

En las operaciones de entrada-salida el microprocesador controla la transferencia de datos. La información de un periférico que quiere almacenarse en la memoria se transfiere del periférico al microprocesador y éste lo envía a la memoria. De la misma forma una información que hay que enviar desde la memoria a un periférico se realiza a través del microprocesador.

En algunos procesos este envío-recepción de información podría resultar muy lento y para  evitarlo se emplean periféricos capaces de transferir datos desde o hacia la memoria desde el periférico sin pasar por el microprocesador, son los dipositivos de acceso directo a memoria DMA (Direct Memory Access).

El DMA es un procesador especial que se conecta a los buses de direcciones, datos y control. Cuando el DMA no trabaja sus líneas presentan alta impedancia. Cuando trabaja, el  DMA necesita utilizar el bus del sistema y para ello existen dos señales de control.

HOLD (Entrada). Es una petición al microprocesador para que se detenga y ponga los buses en estado de alta impedancia. Cuando el microprocesador atiende la petición de HOLD envía al exterior una señal de reconocimiento que se conecta al DMA.

HOLDA (Hold acknowledge) (Salida). Reconocimiento de HOLD. Es la indicación de que el microprocesador se ha desconectado de los buses y el DMA puede apropiarse de los mismos.

 

6. REPRESENTACIÓN Y EJECUCIÓN DE LAS INSTRUCCIONES

La finalidad de un microprocesador consiste en procesar unos datos de acuerdo con un programa formado por una secuencia de instrucciones que se encuentra almacenado en memoria.

El formato de una instrucción puede estar constituido por cuatro campos : etiqueta, código de operación, operando y comentarios.

- La etiqueta es siempre opcional, es un símbolo cuyo valor corresponde a la posición de memoria donde se encuentra la instrucción.

- Código de operación. En los microprocesadores de ocho bits ocupa un byte y determina el tipo de operación que realiza la instrucción. Al emplear ocho bits el número máximo de instrucciones es de 256, aunque normalmente no se utilizan todas las combinaciones posibles. Los códigos empleados constituyen el lenguaje máquina que entiende el microprocesador.

- Operando. Dependiendo del tipo de instrucción pueden existir: ninguno, uno o dos bytes en los que figurarán los datos sobre los que se efectuará la operación indicada por el código de operación.

- Comentarios. Este campo es opcional y sirve para que el programa tenga una mayor comprensión.

 

7. TIPOS DE INSTRUCCIONES

De acuerdo con el tipo de funciones que realizan se podrían clasificar en:

7.1. Instrucciones aritméticas y lógicas

Entre las primeras se pueden citar instrucciones que realizan sumas, restas,  incrementos decrementos, multiplicaciones y divisiones. Las segundas realizan funciones lógicas como  AND, OR, OR-Exclusiva, complementación. En este grupo pueden incluirse las instrucciones de comparación, desplazamiento y rotaciones.

7.2. Instrucciones de transferencia de datos

Trasladan datos entre la memoria y los registros de la CPU y viceversa e intercambios entre registros de la CPU.

7.3. Instrucciones de ruptura de secuencia

Pueden ser de tipo salto sin retorno, llamadas a subrutinas y retornos de subrutinas. Estas instrucciones pueden ser además incondicionales o condicionales, en este segundo caso la condición será algún flag del registro de estados. Antes de saltar a una subrutina el contador del programa se guarda en la pila (stack), para poder retornar al programa principal una vez ejecutada la subrutina.

Al finalizar la subrutina, hay que colocar una instrucción de retorno (RET) que devuelve al contador del programa la dirección de la siguiente instrucción del programa principal previo a la llamada a la subrutina.

7.4. Instrucciones de manejo de la pila

Permiten almacenar datos en el tope de la pila (PUSH) y sacar datos de la misma (POP). El puntero de la pila se actualiza con estas instrucciones y apunta siempre al tope de la misma (dirección del último byte introducido en el stack).

7.5. Instrucciones de entrada-salida

Las instrucciones de entrada-salida (IN-OUT) son equivalentes a las de escritura y lectura de memoria. Su direccionamiento suele ser más corto y se activan líneas de control específicas I0/M,_=1 indicando que la operación se realiza sobre la unidad de entrada-salida.

7.6. Instrucciones especiales y de control

Instrucción de parar el programa HLT (Halt), de este estado se sale con un reset o una interrupción. Instrucción de no operación NOP, el microprocesador consume un tiempo sin hacer nada, se puede emplear para rellenar posiciones de memoria y dejar el resto del programa sin modificar.

Instrucciones de control de interrupciones, permiso o deshabilitación de interrupciones, máscaras de interrupciones, interrupciones pendientes.

 

8. SELECCIÓN DE LAS MEMORIAS

Para seleccionar las diferentes posiciones de memoria se emplea el bus de direcciones. Como los microprocesadores de 8 bits emplean 16 líneas de dirección, se pueden seleccionar 216 posiciones de memoria.

Las memorias utilizadas por los microprocesadores suelen ser del tipo no volátiles (ROM, EPROM) para programas y datos fijos, y volátiles (RAM) para datos variables. Normalmente se emplearán diferentes circuitos integrados, necesitando cada uno de ellos una línea de selección del dispositivo (chip select) y un cierto número de líneas para acceder a las diferentes posiciones de la misma.

Se emplean normalmente dos métodos de selección para acceder a una posición de memoria, la selección lineal y la selección decodificada.

La selección lineal consiste en utilizar una línea del bus de direcciones (convenientemente adaptada). Tiene la ventaja de la sencillez y suele emplearse para pequeños sistemas.

La selección decodificada puede permitir el acceso a todo el mapa de memoria.  

 

 

Cuestionario:

1-      Realiza una breve historia de los microprocesadores.

2-      ¿Cuáles son las ventajas más importantes del microprocesador? Descríbalas.

3-      ¿Cuáles son las operaciones que realiza el microprocesador?

4-      Describa los 3 tipos de buses.

5-      Describa unidad de entrada-salida, memorias, funciones y características del microprocesador.

6-      Describa con sus palabras la arquitectura de los microprocesadores, sus partes.

7-      La finalidad de un microprocesador consiste en procesar unos datos de acuerdo con un programa formado por una secuencia de instrucciones que se encuentra almacenado en memoria. Describa el formato de una instrucción.

8-      ¿Cómo pueden ser las instrucciones?

9-      ¿Qué tipo de memoria utilizan los microprocesadores?

 

 

 

No hay comentarios.:

Publicar un comentario

Nota: sólo los miembros de este blog pueden publicar comentarios.

Aplicaciones I - Planillas de Cálculo

  Asignatura: Aplicaciones I Curso: 4° Informática Profesora: Evangelina Rivero - e-mail:evange_rivero@hotmail.com Tema: Planillas de Cálcul...