(18-12-2012 13:49)Adolfito escribió: 1. Represente en un esquema el formato de una instrucción de tres direcciones.
(18-12-2012 13:49)Adolfito escribió: 1. |cod op|MD| |Dir 1| |Dir2| |Dir3|
Así es. Como la instrucción recibe 3 direcciones ("tres parámetros"), necesitamos 3 campos al final para guardar su dirección (Dir1, Dir2 y Dir3). Además, necesitamos el identificador de la instrucción (cod op), y, por lo que parece, el modo de direccionamiento (MD), aunque de esto último creo que no tengo idea de qué significa.
(18-12-2012 13:49)Adolfito escribió: 2. Si cada dirección es de 6 bits a cuantas direcciones puede referenciar cada una de ellas.
(18-12-2012 13:49)Adolfito escribió: 2. \[2^{6}= 64\] direcciones referenciadas por cada dirección
Combinatoria: con 6 bits puedo tener \[2^{6}= 64\] valores diferentes. Si los valores son direcciones, entonces tengo \[2^{6}= 64\] direcciones distintas. Si en vez de ser direcciones fueran melones, toros, o
pichis, con 6 bits puedo identificar 64 melones diferentes, o 64 toros, o 64 pichis, sea lo que los pichis fueran.
(18-12-2012 13:49)Adolfito escribió: 3. Si la instrucción referida en el punto 1 es de 24 bits y un único modo de direccionamiento y en la primera dirección se almacena el operando 1; en la segunda el operando 2 y en la tercera el resultado¿Cuántas instrucciones distintas se puede definir?
Toda la instrucción mide 24 bits. Pero se que los últimos 3 parámetros son 3 direcciones de 6 bits cada una. Entonces, de mis 24 bits ya tengo 18 ocupados. Me quedan 6.
Como el modo de direccionamiento es único, no necesito reservar bits para identificar el modo de direccionamiento: siempre es el mismo, el único que existe. Entonces, de esos 6 bits que me sobraban, su totalidad va a ser para el código de operación: tengo \[2^{6}= 64\] códigos de opearción diferentes, entonces puedo tener hasta 64 operaciones diferentes.
(15-12-2013 13:52)reLlene escribió: si alguien pudiera explicarme (en criollo) que significa " direcciones referenciadas por cada dirección" se lo agradeceria !!! :
Hay variables (buen, no se en assembler cómo se llaman, pero son
esas cosas que guardan información) que guardan números: pueden valer 1, 10, 5000, -24, etc. Hay otras que pueden guardar letras (ok, es mentira, también son números). Hay otras variables que lo que guardan son direcciones: 0x4f025, 0x0, 0x200. Y, otra vez: es mentira, son números.
Lo importante es cómo se interpretan esos números que están guardados ahí. Esos bits tienen significados distintos según el tipo de esa variable.
Para las direcciones, los números esos no representan un valor, sino la dirección en memoria en que se encuentra un valor que nos interese. En el índice de un libro no guardamos todo el texto de cada capítulo: guardamos un título (algo que lo identifique) y el número de página donde empieza ese capítulo. Con los punteros en memoria pasa igual: en lugar de guardar el dato, guardo la dirección en que está guardado el dato.
"Direcciones referenciadas por cada dirección" es medio redundante, pero la idea es esa: habla de las direcciones que están guardadas en esa variable (osea, el número de página en que empieza cada capítulo). Si una variable apunta a la posición de memoria 0x4052f, decimos que esa variable "es una referencia a la posición de memoria 0x4052f".