Anirus
Super Moderador
Sin estado :)
Ing. en Sistemas
Facultad Regional Buenos Aires
Mensajes: 1.163
Agradecimientos dados: 81
Agradecimientos: 232 en 78 posts
Registro en: Nov 2009
|
Mensaje: #2
RE: Arquitectura + Ayuda en ejercicio de practica
1- Para la linea de codigo presentada a continuacion
AB55:0103 mov ax, [0333]
Calcular las direcciones efectivas: de la instruccion y del operando, suponiendo que cs=ds
AB55:0103 son los datos que se usan para obtener la dirección de la instrucción. El primer número es el valor de CS (Registro de Segmento de Código), multiplicandolo por 16 se puede obtener la base del segmento de código, que sería AB550 (16 en hexadecimal es 10, así que sólo se agrega un 0).
0103 es el valor de IP (Puntero de instrucción), su valor es el desplazamiento que hay que sumarle a la base del segmento para obtener la dirección de la instrucción. Por lo tanto la dirección efectiva de la instrucción se calcula así:
CS x 16 + IP = AB550 + 0103 = AB653
[0333] es el desplazamiento que hay que sumarle a la base del segmento de datos para obtener la dirección del operando, la base se obtiene multiplicando por 16 el número que está en DS (Registro de Segmento de Datos). En el enunciado dice DS= CS, por lo tanto DS vale AB55.
DS x 16 + desplazamiento = AB550 + 0333 = AB883
2- Para la linea de codigo presentada a continuacion
AB55:0103 mov ah, [0333]
Si la siguiente instruccion a la descripta se aloja en la direccion fisica AB656. Cual es el tamaño de la instruccion y cuantos bytes le corresponden al codigo de operacion?
Acá te dan la instrucción y te dicen cuál es la dirección del siguiente dato. Para saber cuanto ocupa hay que fijarse cuantos bytes hay entre una dirección y la otra. Primero obtenemos la dirección,
AB550 + 0103 = AB653
Ahora se lo restamos a la dirección siguiente
AB656 - AB653 = 3
Ocupa 3 bytes, sólo queda saber cuantos se correponden al codigo de operación. Para esta parte tengo duda de si se resuelve así:
[0033] son 4x4 bits = 16 bits = 2bytes, por lo tanto el código ocupa lo que sobra, 1 byte.
(Este mensaje fue modificado por última vez en: 26-02-2011 16:50 por Anirus.)
|
|
26-02-2011 16:49 |
|
Anirus recibio 4 Gracias por este postAnirus recibio 4 Gracias por este post
CarooLina (07-01-2014), sebbab (31-01-2014), Vodianisa (22-02-2015), Leo13 (23-02-2015)
|