martes, 28 de octubre de 2008

Clase 18 del 01 de octubre

PROGRAMACION EN CODIGO DE MAQUINA

Registro de instrucción= trae la instrucción y la UC mira para analizar que es lo que hay que hacer. El tamano que tiene que tener es el de la instrucción.
No puede hacer mas de una cosa a la vez.


El procesador nunca sabe donde va a terminar.
El contador marca, al finalizar una instrucción, que hay una nueva.
Se entera de que termina cuando llega una instrucción que dice: “devolvele el control al sistema operativo”.




*instrucción elemental:


Sistema Operativo __________ Programa: Al hacer doble click le decimos al SO que cargue el programa en la ram. Una vez que lo carga pone en el Registro de instruccion la primer direccion del programa.
El microprocesador analiza y hace la instruccion y despues va a la proxima. Hasta que vuelve una instruccion que dice que le vuelva el control al sistema operativo








Código de operación: exactamente que va a hacer. Puede realizar 16 cosas diferentes.


El resto de los bits son operandos. En estos puedo poner dato, dirección, registro, etc.


1 rxy = pone en R lo que hay en xy (xy= dirección de la memoria a la que tengo que ir)
2 rxy = carga en R el numero xy
3 rxy = lo que esta en R lo pone en xy
5 rst = pone en R la suma de st (ejemplo: 5 34A = pone en 3 la suma de 4A)




Ejercicios:
1) Se tienen 2 números ubicados en 2 posiciones de memoria. Una es la A7 y otra es la B8. Se pide sumarlas el resultado ubicarlo en la dirección.


1011A7 (dato)
11 (pone A7)


1212B8 (dato)
13 (pone B8)


145312 (la suma de los registros 1 y 2 van a 3)
15 (pone 12)


1633C7 (lo que estaba en 3 va a C7)
17 (pone C7)


18 C000 (C000 avisa que termino y me devuelve el control)

2) A los dos números del ejercicio anterior se les pide sumarle 5 al primero y 8 al segundo. Luego sumar el resultado del primero más el resultado del segundo y guardarlo en la misma posición que el resultado anterior. Empiecen en la dirección 50.


50 2005 (pone el 5 en el registro)
52 2108 (pone el 8 en el registro)
54 12A7 (cargo los datos de A7 (2))
56 13B8 (cargo los datos de B8 (3))
58 5402 (suma el 5 (0) con el A7 (2))
5A 5513 (suma el 8 (1) con el B8 (3))
5B 5645 (suma el resultado de 5 + A7 (4) con 8 + B8 (5) y lo pone en (6))
5C 36C7 (almacena el resultado (6) en C7)
5D C000 (termina el programa y me devuelve el control)


3) Para el mismo ejercicio anterior realizar la suma y verificar si el resultado es igual a D9. Si es igual se pide sumarle A al resultado, si no es igual se pide sumarle F al resultado.




pd: Ahora agrego las imagenes

Iona Madrid