jueves, 25 de septiembre de 2008

Clase 17/09

Sistema Hexadecimal

La escritura es similar a la del sistema binario, solo que en lugar de estar basada en dos símbolos se basa en 16 simbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Donde cada una de las letras corresponde a los números que siguen (A=10, B=11, C=12, etc.)

Para escribir un número tengo la estructura del sistema binario con las posiciones (... P2 P1 P0) y cada posicion es 16 elevado al número de posicion (ej: P0=16*0; P1= 16*1; P2=16*2)
Y el símbolo que ubique en cada posicion va a indicar por cuánto voy a multimplicar a esa operación, y luego sumo los valores de cada posicion.
Ej: 1B= 11 x 16*0 + 1 x 16*1
1B= 11 x 1 + 1 x 16
1B= 27

Para pasar un número de sistema hexadecimal a binario tengo que pensar cada símbolo (número/letra) como una unidad de 4 bits. Entonces escribo el valor de cada símbolo de hexadecimal utilizando 4 dígitos del sistema binario y los voy poniendo consecutivamente.
Ej: A1C -->
A=10 1=1 C=12
A=1010 1=0001 C=1100

--> A1C= 101000011100

Y lo mismo a la inversa. Si quiero pasar de binario a hexadecimal "separo" de derecha a izquierda los dígitos en unidades de a cuatro bits y me fijo a qué número corresponde cada una de esas unidades de 4 bits. Cuando se que valor tiene cada unidad le asigno el símbolo correspondiente en hexadecimal y los junto.

Ej: 110010100100 ----> 1100,1010,0100
12 10 4
C A 4

-->
110010100100 = CA4

en caso de que queden algunos digitos sueltos sin llegar a completar una unidad de cuatro bits se consideraran a los bits faltantes como "ceros".

Microprocesador Didáctico

Se cuenta con:
una memoria en el procesador de 16 regístros (desde R0 a RF) de 8 bits cada uno, y cuatro bits de direccion
una memoria principal (RAM) de 256 celdas (direcciones; desde 00 hasta FF, formadas por 8 bits) y con una memoria en cada una de 8 bits.


La UC posee un registro llamado registro de instruccion (RI). A ese registro son llevadas las instrucciones elementales para que la UC las analice y decodifique para luego mandar a ejecutarlas. Solo puede hacer y tomar una por vez.
Cuando el sistema operativo carga un programa (es decir cuando lo abro) lo que hace es llevarlo a la RAM y poner en el RI la primera orden del programa. La UC la analiza y decodifica, manda a ejecutar y luego automáticamente va a buscar la siguiente orden. Asi actua sucesivamente a lo largo de todas las ordenes del programa hasta que llega a una orden que dice que finalizo el programa, y entonces la UC le devuelve el control al sistema operativo. (cuando la computadora o el programa se cuelga es porque no se llego a la orden de finalizacion del programa entonces el sistema operativo no pudo retomar el control).


Registro de Instrucciones

El registro de instrucciones cuenta con 16 bits, los cuales vamos a separar en 4 "secciones" de 4 bits, aunque fisicamente no haya ninguna division.
Los primeros 4 bits son código de operación. Es decir con esos primeros cuatro bits se va a indicar cual es la operacion que se va a realizar.
Los siguientes 12 bits son de forma genérica el operando, que puede ser un registro particular, una direccion o puede ser el dato.


Ejemplos de Operaciones (tambien en la guía)

Operación 1: el primer bit es "1" que corresponde al código de operación, y el operando se compone de RXY donde R es el número de registro y XY es una dirección en la memoria principal. (tomar misma explicacion para las operaciones 2 y 3)
la operacion es: cargar en el registro R el patron de bits que está en la celda de memoria XY.
Ej: 14A3 haria que se coloque en el registro R4 el contenido de la celda de memoria ubicada en la direccion A3

Operacion 2: la operacion es cargar el registro R con el patron de bits R0
Ej: 20A3 haria que se colocara el valor A3 en el registro R0

Operacion 3: la operación es almacenar el patron de bits que esta en el registro R en la celda de memoria cuya direccion es XY.
Ej: 35B1 haria que se coloque el contenido del registro R5 en la celda de memoria cuya direccion es B1