Ensamblador - Dos problemas! ensamblador

 
Vista:

Dos problemas! ensamblador

Publicado por Santiago (6 intervenciones) el 04/04/2006 18:00:36
Hola, muy buenas, tengo que presentar estos 2 problemas y no tenog ni idea de hacerlo, a ver sio me podeis echar una mano. Muchas gracias

Todas las preguntas d’esta PAC hacen referencia a l’arquitectura CISCA, a su lenguaje máquina y a su lenguaje assemblador, tal y como se definen en la documentación de l’asignatura.
dado el siguiente codigo en ensamblador:
MOV R0, [A]
CMP R0, [B]
JLE Label_1
DEC R0
JMP Label_2
Label_1: ADD [B], 4
Label_2: MUL [B], R0
MOV [A], R0
Traducidlo a lenguaje máquina expresándolo en la mesa siguiente. Suponéis que la primera instrucción del código s’assambla a partir de l’dirige 10F8h (que es el valor del PC a l’sido inicial). Suponéis también que las direcciones simbólicas A y B valen 20h y 200h respectivamente. En la mesa siguiente utilizáis una fila por codificar cada instrucción (cómo se hace en los ejemplos de codificación en la documentación de l’asignatura). Si suponemos que la instrucción empieza a l’dirige @, el valor de cada uno de los bytes de la instrucción con direcciones @+y para y=0, 1… , s’ha’d indicar en la mesa en hexadecimal a la columna correspondiente (recordáis que los campos que codifican un desplazamiento en 2 bytes o un inmediato o una dirección en 4 bytes lo hacen en formato little endian, esto hace falta tenerlo en cuenta escribiendo los bytes de menos peso, d’dirige más pequeña, a l’izquierda y los de más peso, dirección más grande, a la derecha).

Bk per a k=0..10
Assemblador 0 1 2 3 4 5 6 7 8 9 10
MOV R0, [A]
CMP R0, [B]
JLE Label_1
DEC R0
JMP Label_2
ADD [B], 4
MUL [B], R0
MOV [A], R0

LA SIGUIENTE PREGUNTA ES ESTA:

L’estado inicial de la máquina es: Registros: Ri= y 2*, por ejemplo: R0=0, R1=2, R2=4, etc. (excepto R15 o SP, que tiene el valor inicial 0) Memoria: M(y)=(y+8) mod 232 para y = 0, 4, 8… , (excepto en las posiciones de memoria dónde se encuentra código del programa). Ejemplo: M(00001000h)=00001008h, M(FFFFFFFCh)=00000004h, etc. La notación M(y) se refiere a la palabra de 4 bytes M(y)..M(y+3) en little endian. Bits de resultado del registre d’sido inactivos: Z=0, S=0, C=0, V=0 PC=10F8h Cuál será l’estado del computador después’d ejecutar el código de la pregunta 1?. Indicáis sólo el contenido de los registros, posiciones de memoria y bits de resultado que s’hayan modificado en consecuencia de l’ejecución del código.

MUCHAS GRACIAS POR VUESTRA AYUDA
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder