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贸n | Contenido |
---|---|
12 | 00000000 11111111 |
13 | 11111111 00000000 |
14 | 10101010 10101010 |
15 | 01010101 01010101 |
12 = 0x00FF
13 = 0x5654
14 = 0x00FF
15 = 0x5555
b) 驴Cu谩l es el valor de FZ?
Direcci贸n | Contenido |
---|---|
12 | 00000000 11111111 |
13 | 11111111 00000000 |
14 | 10101010 10101010 |
15 | 01010101 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贸n | Contenido |
---|---|
36 | 00000000 11111111 |
37 | 00000000 11111111 |
38 | 11111111 11111111 |
39 | 11111111 11111111 |
3A | 00000000 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 |
1 | MOV | 105 | 103 | i = 0 | |
2 | while | CMP | 103 | 101 | mientras i < b |
3 | BEQ | 8 | 8 | si FZ = 1, PC = 8 | |
4 | ADD | 100 | 102 | c = c + a | |
5 | ADD | 104 | 103 | i = i + 1 | |
6 | CMP | 50 | 50 | siempre FZ = 1 | |
7 | BEQ | 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.
COP | Fuente | Destino |
---|---|---|
01 | 1101001 | 1101010 |
10 | 1101010 | 1101011 |
11 | XXXXXXX | 1100100 |
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: