UTNianos

Versión completa: Arquitectura + Ayuda en ejercicio de practica
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola gente agradeceria el que pueda darme una mano en este tipo de ejercicios. Ya sea resolviendolo, con apuntes o como sea ya que no tengo nada de esto. La curse hace cuatro años asiqeu ya se me vence. GRACIAS

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

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?
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.
EXCELENTE EXPLICACION. MUCHISIMAS GRACIAS!!!!
URLs de referencia