miércoles, 29 de octubre de 2008

Clase 27/10 - Enmascaramiento

El puerto permite el envio y recepcion de datos de afuera de la computadora hacia adentro y visceversa. Estos puertos utilizan conectores especificos, que transmiten la información bit a bit.

Al conectarse a la computadora el conector, pasa a ser una nueva posición de memoria que la lleva a un registro.

Para poder saber el valor de un solo bit (1 o 0) el proceso que se realiza es el enmascaramiento.

Esto implica, mediante compuertas AND o OR, crear, de manera lógica, una serie de bits que me permitan a mi descifrar el bit que preciso conocer. Repasando un poco las compuertas nombradas, sabemos que para que la salida de una compuerta AND sea 1, la unica manera que sea posible es que todas las entradas sean 1. Caso contrario, la salida va a ser 0.



Y por otro lado, en la compuerta OR, a menos que todas las entradas sean 0, la salida siempre va a ser 1.



Sabiendo esto, podemos ver un ejemplo del enmascaramiento:

Si nosotros tuviesemos un octeto de 8 bits, del cual queremos saber el valor del cuarto bit, podriamos hacer lo siguiente:


De esta forma conseguiriamos la forma de discriminar el cuarto bit, ya que en todos los bits de la mascara que el numero es 0, el resultado de los bits va a ser 0, en cambio poniendo un 1 en el cuarto bit que es el que me interesa, es el unico bit que podría leer ya que se mantiene el valor anterior, y los resultados podrian ser 10, 00.

[000?0?00 si yo quiero averiguar esos valores, la mascara que usaria seria 00010100, teniendo cuatro resultados posibles, en hexadecimal, 00, 10, 04, 14.]


Ahora, si yo quiero poner un 1 en los bits 1, 3 y 6, puedo hacer lo siguiente:


Usando en este caso la compuerta OR, la unica forma que quede 0 es que las entradas sean 0. al poner en la mascara un 1 en los bits en los cuales yo quiero que tengan un 1, si o si el resultado va a ser 1, porque la compuerta OR suma las entradas, entonces, 1 + 1=1 y 1+0= 1 . si a esto yo quisiera por ejemplo en los bits 7 y 5 poner un 0, podria usar la compuerta AND, y esto quedaria:
Como la compuerta es AND, poniendo un 0 el resultado si o si va a ser 0, y dado que hay otros bits que no queria asignarles ningun valor, puse un 1, para que de esa forma se mantenga el valor anterior.
Ahora una consigna incluyendo contenidos de Instrucciones del procesador y enmascaramiento:
"Se tiene en F3 un dato el cual se quiere saber si el bit 4 esta en 0. Si es así poner los bits 7 y 5 en 1 y los bits 6 y 3 en 0. En caso contrario, poner el bit 2 en 1."

10 11F3
12 2210
14 8312
16 2000
18 B322
1A 2404
1C 7541
1E 35F3
20 B02C
22 26A0
24 7716
26 28B7
28 8978
2A 39F3
2C C000

Otro ejercicio: "Se tienen dos números guardados en la dirección A0 y A1. Si los bits 1 y 5 son iguales, poner un 1 en el bit 7. Caso contrario, poner un 0 en el bit 7."

10 11A0
12 12A1
14 2322
16 8013
18 8423
1A B424
1C 257F
1E 8615
20 36A2
22 B02A
24 2580
26 7615
28 36A2
2A C000

sábado, 25 de octubre de 2008

Clase del 6/10

Código B

La instrucción “B” permite generar un salto que puede ser condicional o incondicional.
Se escribe BRXY siendo el numero de registro a comparar con el registro “0” y XY como dirección

Funcionamiento de salto condicional: La Instrucción B compara lo que hay en el numero de registro puesto en R con lo que hay en el registro 0 si es igual salta a la dirección puesta en XY y si es diferente pasa a la dirección siguiente como si el proceso no hubiese sido afectado.

Funcionamiento de salto incondicional: Se le pone a R el numero de registro 0, entonces al compararlo con el registro 0 siempre será igual y salta incondicionalmente a la dirección puesta en XY.



Ahora, un ejemplo de una programación en la cual se usa el “código b”: “Se tienen 2 números almacenados, uno en B0 y otro en C0. Se pide sumarlos y guardarlo en la dirección D0, si el resultado es igual al numero 33 (hexa) se pide guardar en la dirección F0 el numero FF, en caso contrario el número 0”.

Nicolás Levinton.

miércoles, 8 de octubre de 2008

Clase del 29/9

Sistema Hexadecimal

El sistema hexadecimal tiene como base al numero 16

Hexadecimal. Decimal
0 0
1 1
2 2
3 3
. .
. .
. .
. .
8 8
9 9
A 10
B 11
C 12
D 13
E 14
F 15


Para convertir un número de Hexa. A Decimal si tiene que multiplicar los números o símbolos por 16 elevado según la posición que se encuentre: Ejemplo:

A13F =
Ax16³ + 1x16² + 3x16¹ + Fx16º = Decimal

Para convertir de binario a hexa: Se toman se toman siempre de a 4 números desde la derecha. Ejemplo:
1 0110 1110 1110 1110 1111 0111 0111
1 6 E E E F 7 7

Otro ejemplo: de Hexa a binario:
7 2 E F A
0111 0010 1110 1111 1010

De binario a hexadecimal:

10 1001 1011 0111 0001
2 9 B 7 1

Instrucción elemental: Necesita de un “Codigo de opereacion” y de sus respectivos OPERANDOS (¿Qué?, ¿Cómo? ¿Cuando?, ¿Dónde?) para su funcionamiento.




Actividad: Esta ultima actividad la resolvimos con la fotocopia dada en clase.
Se tiene dos números almacenados, uno en la dirección A3 y otro en la dirección CD, se pide sumarlos y guardarlos en la dirección FF.

10 11A3
12 12CD
14 5312
16 33FF
18 C000

Demian Kania