martes, 17 de septiembre de 2013

Ejercicios 17 de Septiembre

A qué tipo de direccionamiento corresponde cada una de las siguientes líneas



1. LDA #100 - > Direccionamiento inmediato
2. MOVE AL,BL- > Direccionamiento por registro
3. MOVE DX,CX - > Direccionamiento de registro
4. MOVE AX,DATO - > Direccionamiento Directo
5. MOVE AX,[100]  - > Direccionamiento Directo
6. MOVE AX,[BP]  - > Direccionamiento  Inmediato a Registro
7. MOVE AX,COUNT[DI] - > Direccionamiento Indirecto con desplazamiento
8.MOVE AX[SI] - > Direccionamiento Inmediato a Registro


2. Complete los siguientes enunciados


a) La memoria de un computador se compone de unidades de almacenamiento llamadas___bit_____


b) _____byte_______se agrupa 8 unidades de almacenamiento


c) La agrupación de 4 bits (inferiores y superiores se les llama_____nibble____


d) __la Unidad de control____es quien crea y controla el flujo de datos


e) ____el Bus de datos_______se encarga de transferir datos entre cpu, memoria y periféricos


f) _____La unidad aritmetica logica (ALU)______se encuentran las diferentes señales encargadas de la sincronización y control del sistema




3. escriba nombre y función de los registros

a) AX

Acumulador

es utilizado para operaciones que implican entrada/salida y la mayor parte de la aritmética. Por ejemplo, las instrucciones para multiplicar, dividir y traducir suponen el uso del AX.

b) BX

Base

El registro BX es conocido como el registro base ya que es el unico registro de proposito general que puede ser un indice para direccionamiento indexado. Tambien es comun emplear el BX para cálculos.



c) CX

Contador

Se utiliza en operaciones de iteracion, como un contador que automáticamente se incrementa o decrementa de acuerdo con el tipo de instrucción usada.



d) DX

Registro de datos

El registro DX es conocido como el registro de datos. Algunas operaciones de entrada/ salida requieren de su uso, y las operaciones de multiplicación y division con cifras grandes supenen al DX y al AX trabajando juntos.



e) DS

Registro de segmento de datos

Indica la posición donde empieza el segmento de datos, es decir , el area de memoria donde estan almacenados los datos del programa.



f) ES

Registro del segmento extra

Indica la posición de memoria donde comienza el segmento extra, un segmento de datos adicional que también se utiliza para transferencia de datos entre segmentos.


g) SS

Registro del segmento de la pila
Indica la posición de memoria donde empieza la pila.



h) CS

Registro del segmento de código

Indica la posicion de comienzo del segmento de código, o sea las instrucciones del programa.


i) BP

Puntero base

Facilita la referencia de parámetros los cuales son datos y direcciones trasmitidos via la pila. Los procesadores 80386 y posteriores tienen un BP ampliado de 32 bit llamado el registro EBP.



j) SI

Registro índice fuente

Es requerido por algunas operaciones con cadenas (de caracteres). En este contexto, el SI esta asociado con el registro DS. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32 bits, el ESI.


k) DI

Registro índice destino

es requerido por algunas operaciones con cadenas de caracteres. En este contexto, el DI esta asociado con el registro ES. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32 bits, el EDI.


l) SP

Puntero de pila
El registro SP apunta a un área especifica de memoria que sirve para almacenar bajo la estructura LIFO(ultimo en entrar, primero en salir), conocida como pila stack.


m) IP

Registro apuntador de instrucciones

Contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta.El IP esta asociado con el registro CS en el sentido de que el IP indica la instrucción actual dentro del segmento de código que se esta ejecutando actualmente.


n) F

Registro de banderas

Sirven para indicar el estado actual de la maquina y el resultado del procesamiento. Muchas instrucciones que piden comparaciones y aritmética cambian el estado de las banderas, algunas de cuyas instrucciones pueden realizar pruebas para determinar la acción subsecuente.

martes, 3 de septiembre de 2013

Actividad 8 # Crucigrama

Organización Interna de un Computador







Actividad # 7 capitulo 2 transcribir conceptos a su blog

Organización Interna del Computador

Arquitectura Fundamentalde un computador
Todo computador digital consta de cuatro partes bien definidas: Unidad Central de Procesamiento (CPU), Memoria, perifericos y buses.

Unidad Central de Procesamiento

La CPU es quien crea y controla el flujo de datos, que circula por el computador a partir de las instrucciones recibidas de la memoria, que sirven para indicar las operaciones o tratamiento a realizar sobre los datos recibidos desde el exterioro previamente almacenados en la memoria. La misma consta de dos partes la unidad de control y la unidad aritmetico Logica (ALU).


Unidad de control

La unidad de control recibe secuencialmente las instrucciones desde la memoria, a través del bus de datos, almacenándolas en el registro de instrucciones (IR). Desde IR las instrucciones pasan al decodificador de instrucciones, el cual se encarga de interpretarlas y producir una serie de impulsos de gobierno y control. Estos impulsos regulan a los elementos de la maquina, que participan en la ejecución de la instrucción.

La unidad de control, ademas de descodificar las instrucciones y de generar los impulsos de control,
incrementa sincronicamente un contador, llamado contador de programa cada vez que se ejecuta una instruccion, con objeto de que quede señalando a la siguiente instrucción.


Unidad aritmetico logica


La unidad aritmético lógica es la encargada del procesamiento lógico y aritmético de los datos, según el carácter que determine cada instrucción.


Memoria
El programa o secuencia de instrucciones, que debe seguir la maquina para realizar el procesamiento de los datos, esta almacenado en una parte de la memoria, denominada memoria o segmento de instrucciones para diferenciarla del resto de la misma, que se emplea para guardar datos y resultados en forma temporal. La información  que recibe la memoria a través del bus de direcciones, es un conjunto de bits lógicos  tantos como lineas tenga el bus, que seleccionan la posición de memoria a la que se accede. El decodificador de direcciones se encarga de elegir una posición de la matriz de la memoria, descodificando la información que ha llegado por el bus de direcciones. Como generalmente la memoria esta constituida físicamente por mas de un chip, sera tarea del decodificador de direcciones habilidad al chip correspondiente.

En una computadora encontraremos dos tipos de memoria: de solo lectura(ROM) y de acceso al azar (RAM).


Memoria Rom
La memoria ROM (Read Only Memory) o memoria de solo lectura también permite el acceso directo a cada uno de los elementos que la componen, pero la información en ella contenida puede ser leída pero no alterada. Debido a que conserva la información  aun en el caso de ausencia de energía  se usa para almacenar rutinas de mas bajo nivel, que sirven para el arranque del sistema.


Memoria RAM

La memoria RAM (Random Access Memory) o memoria de acceso al azar debe su nombre al hecho de permitir el acceso a cualquiera de las localidades de memoria en forma directa, e contraste con las memorias de acceso secuencial en las cuales para acceder al N-esimo elemento, era necesario acceder previamente a los N-1 elementos anteriores: pero su característica mas importante es la de que la información contenida en cada una de las localidades puede ser leída y/o alterada. En ella se va a almacenar, por lo tanto el sistema operativo y los programas del usuario, así como la información temporal que estos manejen.

A la memoria RAM se le suele llamar memoria volátil  por el hecho de que la información en ellas almacenada, se pierde en ausencia de energía.


Periféricos

Son los encargados de enviar y/o reconocer información del mundo externo a la computadora e intercambiarla con la unidad central de procesamiento a través de la unidad de entradas y salidas.


Buses

Los buses no son mas que los conductores que interconectan cada una de las partes que componen al computador. 

A través de ellos viaja información que según su función permite clarificarlos en tres tipos: bus de datos, bus de direcciones y bus de control.


Bus de datos

El bus de datos se encarga de transferir información entre el CPU, la memoria y los periféricos  Es bidireccional, ya que la información puede fluir en ambos sentidos, es decir, desde o hacia el microprocesador.


Bus de direcciones

El bus de direcciones permite seleccionar la localidad de memoria o el periférico que el CPU desea accesar. Este bus es unidireccional ya que la información a través de el siempre fluye desde el microprocesador.


Bus de Control

En el bus de control se encuentran las diferentes señales encargadas de la sincronizacion y control del sistema. su naturaleza es unidireccional aun cuando existen señales que salen del microprocesador asi como otras que entran al microprocesador. Ejemplos de señales de control son:

WR (escritura)
RD (lectura)
WAIT (espera)
READY (listo)

lunes, 2 de septiembre de 2013

Actividad # 6 Modos de Direccionamiento

Los modos de direccionamiento de un procesador son las diferentes formas de transformación del campo de operando de la instrucción en la dirección del operando. Son las distintas formas de combinar los operando según el acceso que se hace a memoria.

El termino dirección debe interpretarse en su sentido  general de localización del operando, en cualquier lugar, y no en el sentido mas estricto de dirección de memoria.




Los operandos y resultado de una instrucción son accedidos a través de modos de
direccionamiento.
Cada campo de operando o resultado en una instrucción contiene información acerca
del modo de direccionamiento empleado para acceder a él.

• Código de operación (CO) y modificador (MD)
• Operandos (OPi) y resultado (RES)

Cada campo de operandos o resultado tendrá los siguientes subcampos:

• Mdir: especificador del modo de direccionamiento (ocupa pocos bits).

• CR: campo especificador del registro involucrado en el modo de
direccionamiento (ocupa pocos bits).

• CD: campo que puede contener un operando inmediato, una dirección o un
desplazamiento (suele ocupar bastante espacio).

Tipos de direccionamiento mas usuales

Direccionamiento inmediato
Direccionamiento directo
Direccionamiento relativo a registro
Direccionamiento indexado
Direccionamiento indirecto
Combinaciones de modos básicos de direccionamiento


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 el mismo, sin transformación alguna, la información sobre la que hay que operar. Este modo es útil para inicializar registros o palabras de memoria con un valor constante.
















Ejemplo M68000: MOVE.B #5,D0


Direccionamiento directo
Este es el modo de direccionamiento mas sencillo. El campo de dirección no necesita transformación alguna para dar la dirección efectiva, es decir la función que transforma el campo de operando en la dirección efectiva es la identidad. Esto significa que el campo de operando es ya la dirección efectiva.

Este direccionamiento solo se usa en ordenadores pequeños en que el programa siempre se sitúa en la misma zona de memoria ya que dificulta la relocalizacion de los programas, es decir que el código de los programas no dependa de su situación en memoria. En ordenadores mas grandes, este modo esta reservado para acceder a direcciones del sistema, que normalmente se refieren a operaciones de entrada y salida, ya que estas direcciones no dependen del programa.





Ejemplos M68000: MOVE.B #5,D0
MOVE.W #$23A0,A3


Direccionamiento indirecto
En este modo el campo de operando de la instrucción indica la localización de la dirección efectiva del operando. El modo de direccionamiento indirecto puede adquirir diferentes formas según cual sea el lugar donde se encuentre la dirección del operando. En general,  todos los modos de direccionamiento tienen su versión indirecta que añade un eslabón mas a la cadena del direccionamiento. Por ejemplo existe el direccionamiento indirecto por registro, en el que el registro especificado contiene la dirección del operando, no el operando mismo.

Este direccionamiento es útil cuando se trabaja con apuntadores ya que los apuntadores son variables que contienen las direcciones de los operandos, no los operandos mismos.



Direccionamiento relativo a registro

El operando se encuentra en memoria.
La dirección del objeto ha de ser calculada a partir de la suma del contenido de un
cierto registro (que funciona como un puntero) y un desplazamiento (contenido en la
instrucción).



Ejemplo M68000: MOVE.W 5(A0),D1

Direccionamiento indexado
En este modo de direccionamiento, la direccion del operando tambien se calcula sumando un registro de la CPU al campo de operando, este registro es un registro especifico para este uso llamado registro indice.

Similar al direccionamiento relativo a registro base.
• El operando se encuentra en memoria.
• Registro índice: se modifica a menudo en la ejecución del programa.

El registro índice puede permitir incrementos o decrementos antes o después de
obtenerse la dirección del objeto:
• Preincremento
• Predecremento
• Posincremento
• Posdecremento
El incremento o decremento puede depender del tamaño del objeto referenciado.
Ejemplos M68000 (sólo predecremento y posincremento):
MOVE.B D0,(A0)+ incrementa A0 en 1
MOVE.W D0,-(A2) decrementa A2 en 2
MOVE.L (A5)+,D3 incrementa A5 en 4
Utilizado para recorrer tablas o vectores


COMBINACIONES DE MODOS BÁSICOS DE DIRECCIONAMIENTO
Direccionamiento indirecto a registro

Es similar al direccionamiento indirecto, pero la dirección intermedia está contenida en
un registro, no en una posición de memoria.
La instrucción contendrá la referencia al registro.

Coincide con el direccionamiento relativo a registro base sin usar desplazamiento.
Ejemplo M68000: MOVE.L D0,(A4)


Combinación de modos indirecto e indexado


Preindexado: El contenido del registro índice se suma al de la dirección indirecta en el
primer paso de la indirección.


Posindexado: el contenido del registro índice se suma a la dirección intermedia en el
segundo paso de la indirección.

Direccionamiento relativo a registro con índice y desplazamiento
La dirección del objeto se obtiene sumando el contenido de un registro base, un
registro índice y un desplazamiento.

Ejemplo M68000: MOVE.L D0,12(A0,D2)























Actividad # 6 Resumen Introducción al Lenguaje Ensamblador