Ejercicios

Ejercicio 1

Despu茅s de ejecutar el siguiente programa en la MS:

MOV 0x12, 0x13 MOV 0x13, 0x14 ADD 0x15, 0x13

a) 驴Cu谩l es el contenido de las posiciones de la siguiente figura?

Direcci贸nContenido
1200000000 11111111
1311111111 00000000
1410101010 10101010
1501010101 01010101

12 = 0x00FF

13 = 0x5654

14 = 0x00FF

15 = 0x5555

b) 驴Cu谩l es el valor de FZ?

Direcci贸nContenido
1200000000 11111111
1311111111 00000000
1410101010 10101010
1501010101 01010101

FZ = 0x0


Ejercicio 2

Sabiendo que los contenidos en la figura se obtienen despu茅s de haber ejecutado el programa en la MS:

Direcci贸nContenido
3600000000 11111111
3700000000 11111111
3811111111 11111111
3911111111 11111111
3A00000000 11111111
MOV 0x36, 0x37 ADD 0x37, 0x38 MOV 0x38,0x39 CMP 0x39, 0x3A

a) Averiguar el valor inicial que ten铆a la posici贸n 38 antes de ejecutar el programa.

38 = 0xFF00

b) 驴Cu谩l es el valor de FZ tras la ejecuci贸n del programa?

FZ = 0x0


Ejercicio 3

Se pide un programa en lenguaje ensamblador de la MS para realizar una multiplicaci贸n, sabiendo que el multiplicando (a) est谩 depositado en la posici贸n 100 de memoria y el multiplicador (b) est谩 en la 101. El resultado (c) debe guardarse en la posici贸n 102 de la memoria

  • El programa va a requerir un contador (i) que lleve la cuenta del n煤mero de veces que se va sumando el multiplicando. Para este fin se destina la posici贸n de memoria 103, que inicialmente tendr谩 un 0.

  • El programa necesitar谩 la participaci贸n de dos constantes, que tambi茅n se depositan en dos direcciones de memoria. As铆, en la direcci贸n 104 hay almacenado un 1 y en la direcci贸n 105 un 0.

  • Se har谩 sumando el multiplicando consigo mismo tantas veces como diga el multiplicador
  • Se inicializan a 0 tanto el contador como el resultado acumulado
  • El programa consistir谩 en un bucle que se repite mientras no se acabe el proceso
  • El bucle suma el multiplicando al resultado parcial y lo almacena en el mismo lugar
  • Utiliza instrucciones de comparaci贸n y correspondiente salto para tomar las decisiones
  • Como no tiene salto incondicional, realiza en su lugar un salto si se cumple una condici贸n obvia
Direcci贸n Etiqueta Nem贸nico Fuente Destino Comentarios
0 begin MOV 105 102 c = 0
1MOV 105 103 i = 0
2 while CMP 103 101 mientras i < b
3BEQ 8 8 si FZ = 1, PC = 8
4ADD 100 102 c = c + a
5ADD 104 103 i = i + 1
6CMP 50 50 siempre FZ = 1
7BEQ 2 2 salto a PC = 2
8 end

Ejercicio 4

Obtener los formatos binarios que corresponden a las instrucciones del siguiente programa de la MS.

COPFuenteDestino
0111010011101010
1011010101101011
11XXXXXXX1100100
MOV 0x105, 0x106 CMP 0x106, 0x107 BEQ 0x100
COP Fuente Destino
01 1101001 1101010
10 1101010 1101011
11 XXXXXXX 1100100

Ejercicio 5

El formato de instrucciones de un computado tiene 3 campos: COP, Fuente, destino. El computador dispone de un banco de registros con 8 registros (R0鈥7) de 8 bits cada uno. Si inicialmente los registros est谩n cargados con el valor 0000 0010.

a) Calcular el contenido de los mismos despu茅s de ejecutar el siguiente programa, en el cual el c贸digo de operaci贸n se expresa con nem贸nicos y operandos por el nombre de los registros, pues s贸lo se dispone del modo de direccionamiento por registro.

ADD R2, R3 ADD R0, R1 SUB R4, R5 NOT R6 XOR R5, R7

R0 = R2 = R4 = R7 = 0000 0010

R1 = 0000 0100

R3 = 0000 0100

R5 = 0000 0000

R6 = 1111 1101

b) Confeccionar un programa para que el computador del ejemplo anterior, partiendo del mismo estado inicial de sus 8 registros, es decir, que contengan el valor 0000 0010, pasen a contener el valor 0000 0000, despu茅s de ejecutar el programa pedido

Nem贸nico Operandos (F,D) Comentarios
SUB R1, R0 R0 = 0000 0000
AND R0, R1 R1 = 0000 0000
AND R0, R2 R2 = 0000 0000
AND R0, R3 R3 = 0000 0000
AND R0, R4 R4 = 0000 0000
AND R0, R5 R5 = 0000 0000
AND R0, R6 R6 = 0000 0000
AND R0, R7 R6 = 0000 0000

Los ejercicios han sido extraidos del siguiente recurso: