Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 1 votos - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Arquitectura]Ejercicio assembler Final 29-10-2009
Autor Mensaje
lukers Sin conexión
Empleado de Fotocopiadora
deluxe
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 28
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Feb 2010
Mensaje: #1
[Arquitectura]Ejercicio assembler Final 29-10-2009 Finales y 1 más Arquitectura de Computadoras
Hola gente, tengo dudas con este ejercicio:

Tenemos las siguientes lineas de un programa assembler:

3B45:0103 mov al,[0111]
3B45:0106 mov ah,[0114]

Suponiendo que CS=DS y que en las posiciones de memoria referenciadas encontramos:

3B45:0110 25 31 71 65 93

1. Calcular la dirección efectiva de la primera instrucción [3B450 + 0110]
2. Calcular la dirección efectiva del operando de la segunda instrucción [3B450 + 0114]
3. Decir cual será el valor del acumulador al terminar de ejecutarse la segunda instrucción [93-31]

Lo que está en negrita es de la resolución.
El ítem 1, no sería 3B450 + 0103 ??
El 3 no entiendo porque esa rta.

Si alguien puede ayudar le agradezco! :D
Saludos!!
22-02-2010 15:40
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
hernan888 Sin conexión
Militante
Ingeniero
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 95
Agradecimientos dados: 14
Agradecimientos: 5 en 4 posts
Registro en: May 2009
Mensaje: #2
Re: [Arquitectura]Ejercicio assembler Final 29-10-2009
uh master yo tengo el mismo ejericio en duda ajjajaja y rindo este miercoles!!! ojala alguien conteste XD
22-02-2010 17:44
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
alexandermonday Sin conexión
Campeon del cubo Rubik

****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 132
Agradecimientos dados: 144
Agradecimientos: 145 en 30 posts
Registro en: Apr 2009
Mensaje: #3
Re: [Arquitectura]Ejercicio assembler Final 29-10-2009
Direccion Efectiva:

La direccion segmentada se presenta asi:
[segmento]:[direccion] donde segmento son 2 bytes y direccion son 2 bytes.
La direccion efectiva, es la direccion que el microprocesador debe poner en su BUS de DIRECCIONES para acceder a la ram:
[direccion efectiva] = CS x 16 (base 10) + [direccion]

Multiplicar por 16 en binario es correr el dato 4 bits hacia la izquierda , y en hexadecimal es agregarle un cero al numero.



*)Podemos obtener CS , CS = 0x3B45
*)del enunciado DS = CS , entonces DS = 0x3B45
*)Pasamos las tres direcciones segmentadas del ejercicio a direcciones efectivas


3B45:0103 ( instruccion 1 , 3B45:0103 mov al,[0111] )
dir_efectiva = 0x3B45 x 0x10 + 0103 =
= 0x3B450 + 0103 =
= 0x3B553

3B45:0106 ( instruccion 2 , 3B45:0106 mov ah,[0114] )
dir_efectiva = 0x3B450 + 0106 =
= 0x3B556

3B45:0110
dir_efectiva = 0x3B450 + 0110 =
= 0x3B560




>>>>>>>
1. Calcular la dirección efectiva de la primera instrucción

por lo indicado arriba
RTA 0x3B553

<<<<<<<


*)Tama~no en bytes de cuanto ocupa una instruccion MOV :
Observamos que entre la dir_efectiva de la instruccion 1 y la dir_efectiva de la instruccion 2 hay 3 bytes de separacion.
Es decir mov al,[0111] ocupa 3 bytes y al ser mov ah,[0114] la misma instruccion MOV , inferimos que tambien ocupa 3 bytes.
vemos que el argumento de ambos MOV son 2 bytes que indican direcciones del DS (data segment) , [0111] y [0114]
nos queda un byte para el OPCODE "MOV AL," y "MOV AH,"
Se Infiere en que el primer byte es del opcode y los dos bytes siguientes del operando.


>>>>>>>
2. Calcular la dirección efectiva del operando de la segunda instrucción

dedujimos que el opcode ocupa un byte , y que comienza en la direccion efectiva 0x3B556
por todo lo que puse arriba sabemos que el operando comienza en el 2do byte de la instrccion
RTA 0x3B556+1 = 0x3B557

<<<<<<<<


*)Datos almacenados [esta informacion figura en el enunciado]


3B45:0110 25 31 71 65 93
pasamos cada byte indicado a la direccion efectiva: [la direccion efectiva la calculamos arriba de todo]
0x3B560 25
0x3B561 31
0x3B562 71
0x3B563 65
0x3B564 93




*)La instruccion
mov al,[0111]
Lee de la direccion DS:0111 el byte alli almacenado y lo guarda en el registro AL
Como DS=CS , la direccion efectiva referenciada es:
3B45:0111=0x3B561
Leera el byte de la posicion en RAM 0x3B561 y la almacenara en AL
Por lo tanto queda
AL=0x31

Lo mismo con
mov ah,[0114]
3B45:0114=0x3B564
AH=93


>>>>>>>
3. Decir cual será el valor del acumulador al terminar de ejecutarse la segunda instrucción

AX es el acumulador que tiene 16 bits , los 8 bits mas significativos estan representados por AH y los 8 bits menos significativos estan representados por AL , es decir.
RTA AX=0x9331

<<<<<<<

Si hay algun error en lo que expuse, avisen.
Si quieren respuestas mas rapidas , usen la lista de yaho de Arquitectura.
Saludos.
22-02-2010 19:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] alexandermonday recibio 4 Gracias por este post
Bian (11-07-2014), LeandroG (09-11-2014), pampa833 (17-09-2015), guilletala (24-01-2017)
AGUSTIN27 Sin conexión
Secretario de la SAE
INGENIEROOO :)
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 642
Agradecimientos dados: 20
Agradecimientos: 114 en 25 posts
Registro en: Feb 2010
Mensaje: #4
Re: [Arquitectura]Ejercicio assembler Final 29-10-2009
te hago una pregunta, como sabes tanto? donde lo aprendiste? del secundario? de un libro? porq a mi no me explicaron absolutamente nada de esto, y por mas q me digas como se resuelven, sino entiendo bien el concepto nunca lo voy a sacar.
un abrazo y te felicito por tenerla tan clara!

otra cosa, las respuestas q das vos, son distintas a las q dan la resolucion, q onda eso?
saludos
22-02-2010 23:48
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
alexandermonday Sin conexión
Campeon del cubo Rubik

****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 132
Agradecimientos dados: 144
Agradecimientos: 145 en 30 posts
Registro en: Apr 2009
Mensaje: #5
Re: [Arquitectura]Ejercicio assembler Final 29-10-2009
Como decia TUSAM ... puede fallar...
lo lei nuevamente , y descubri que no interprete el enunciado como el profesor quiso transmitir.
me cito y trato de corregirlo:

alexandermonday escribió:Direccion Efectiva:
>>>>>>>
2. Calcular la dirección efectiva del operando de la segunda instrucción

dedujimos que el opcode ocupa un byte , y que comienza en la direccion efectiva 0x3B556
por todo lo que puse arriba sabemos que el operando comienza en el 2do byte de la instrccion
RTA 0x3B556+1 = 0x3B557

<<<<<<<<

Aca interprete que pedia la ubicacion en la memoria fisisca donde estan los operandos, que NO tiene tanto sentido como calcular donde apunta el operando, que es lo mas interesante. En el caso de la instruccion es donde ira a buscar el byte para asignarlo al registro AH.
Creo que el enunciado deberia ser mas claro, algo asi como:
2. Calcular la dirección efectiva donde apunta el operando de la segunda instrucción
3B45:0106 mov ah,[0114]
Aqui la direccion segmentada es DS:dir , 3B45:0114 , porque DS=CS
dir_efectiva = 0x3B45 x 0x10 + 0x0114 = 0x3B564
RTA 0x3B564




Saludos.
Ale.
23-02-2010 11:27
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] alexandermonday recibio 1 Gracias por este post
pampa833 (17-09-2015)
lukers Sin conexión
Empleado de Fotocopiadora
deluxe
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 28
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Feb 2010
Mensaje: #6
Re: [Arquitectura]Ejercicio assembler Final 29-10-2009
alexandermonday, cual es la lista de yahoo de Arquitectura??

Gracias por aportar tus conocimientos y por la buena onda :D

Saludos!
23-02-2010 11:59
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
alexandermonday Sin conexión
Campeon del cubo Rubik

****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 132
Agradecimientos dados: 144
Agradecimientos: 145 en 30 posts
Registro en: Apr 2009
Mensaje: #7
Re: [Arquitectura]Ejercicio assembler Final 29-10-2009
arquitectura_computadoras@gruposyahoo.com.ar
http://ar.groups.yahoo.com/group/arquit ... putadoras/
Email de la jefa de catedra Patricia Quiroga ipquiroga arroba gmail.com
23-02-2010 12:09
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
hernan888 Sin conexión
Militante
Ingeniero
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 95
Agradecimientos dados: 14
Agradecimientos: 5 en 4 posts
Registro en: May 2009
Mensaje: #8
Re: [Arquitectura]Ejercicio assembler Final 29-10-2009
antes que todo gracias por contestar estas dudas y te hago una pregunta, cuando nos dan esto en el ejercicio:

3B45:0110 25 31 71 65 93

esos numeros 25 31 71 65 93 tengo que interpretar que estan en hexadecimal?? eso no me cierra.
osea que cada uno ocupa un byte, y la memoria quedaria asi:
3B45:0110 25
3B45:0111 31
3B45:0112 71
3B45:0113 65
3B45:0114 93
?? esa es mi duda
gracias por responder!
23-02-2010 17:03
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
alexandermonday Sin conexión
Campeon del cubo Rubik

****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 132
Agradecimientos dados: 144
Agradecimientos: 145 en 30 posts
Registro en: Apr 2009
Mensaje: #9
Re: [Arquitectura]Ejercicio assembler Final 29-10-2009
Si, la parte de assembler todo se representa en hexadecimal. al menos que se indique lo contrario.
saludos.
23-02-2010 22:32
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 2 invitado(s)