Realizar las operaciones siguientes, utilizando el algoritmo indicado

Anuncio
Realizar las operaciones siguientes, utilizando el algoritmo indicado. Para ello,
escribir los contenidos de los registros en los sucesivos instantes de tiempo,
marcando el resultado final. En todos los casos, utilizar el menor número de
bits.
1) Multiplicar 12 x 18 utilizando el algoritmo de suma desplazamiento.
2) Multiplicar 21 x 13 utilizando el algoritmo de suma de sumas y restas.
3) Multiplicar 17 x (-11) utilizando el algoritmo de Booth.
4) Dividir 234 entre 11 utilizando el algoritmo de división con restauración.
5) Dividir 314 entre 28 utilizando el algoritmo de división sin restauración.
NOTA: USAR PARA LA MULTIPLICACIÓN LOS SIGUIENTES REGISTROS
R1: multiplicando.
R2: multiplicador.
C-R3: resultados provisionales con bit de signo C
C-R3-R4: Resultado final
NOTA: USAR PARA LA DIVISIÓN LOS SIGUIENTES REGISTROS
BS: Bit de signo.
R1: Dividendo.
R2: Divisor.
R3: Cociente provisional y definitivo.
NOTAS PREVIAS
Nota 1: en todos los casos, los registros que no cambien en dos líneas consecutivas,
no se vuelven a escribir.
Nota 2: para restar, se puede usar la suma en complemento a 2. No se ha
representado explícitamente el valor en complemento a 2 del sustraendo.
Nota 3: en las operaciones de multiplicación, se ha optado por usar un registro R4
distinto del R2 para no perder el valor inicial del multiplicador. R2 y R4 tienen el mismo
número de bits.
Nota 4: en las operaciones de división, se opera con la parte más significativa del
dividendo residual, llamada R1a, con el divisor R2. Ambos tienen la misma cantidad de
bits.
SUMA DESPLAZAMIENTO
R1
R2
C R3
0 1100
10010
0 0000
0 0000
01001
0 1100
0 0110
10100
0 0011
01010
0 0001
00101
0 1101
0 0110
10010
0 0110
SUMAS Y RESTAS
R1
R2
R2-1 C R3
0 10101 1101
0
0 00000
1 01011
1 10101
0110
1
0 01010
0 00101
1011
0
1 10000
1 11000
0101
1
1 11000
1 11100
0 10001
0 10001
ALGORITMO DE BOOTH
R1
R2
R2-1 C R3
0 10001 10101 0
0 00000
1 01111
1 10111
01010 1
0 01000
0 00100
10101 0
1 10011
1 11001
01010 1
0 01010
0 00101
10101 0
1 10100
1 11010
1 11010
R4
XXXXX
0XXXX
00XXX
000XX
1000X
11000
11000
R4
XXXX
1XXX
01XX
001X
0001
0001
R4
XXXXX
1XXXX
01XXX
101XX
0101X
00101
00101
Comentarios
Inicio
Desplaza CR3R4 derecha
Rota R2
R3 R1+R3
Desplaza CR3R4 derecha
Rota R2
Desplaza CR3R4 derecha
Rota R2
Desplaza CR3R4 derecha
Rota R2
R3  R1+R3
Desplaza CR3R4 derecha
Rota R2
Fin
Comentarios
Inicio
R3R3-R1
Desplaza CR3R4 derecha
Rota R2-R2-1
R3R3+R1
Desplaza CR3R4 derecha
Rota R2-R2-1
R3R3-R1
Desplaza CR3R4 derecha
Rota R2-R2-1
No opera
Desplaza CR3R4 derecha
R3R3+R1
Fin
Comentarios
Inicio
R3R3-R1
Desplaza CR3R4 derecha
Rota R2-R2-1
R3R3+R1
Desplaza CR3R4 derecha
Rota R2-R2-1
R3R3-R1
Desplaza CR3R4 derecha
Rota R2-R2-1
R3R3+R1
Desplaza CR3R4 derecha
Rota R2-R2-1
R3R3-R1
Desplaza CR3R4 derecha
Fin
DIVISIÓN CON RESTAURACIÓN
BS  R1a R1b 
0
0
1110 1010
0011 1010
R2
R3
1011 00000
00001
0
1
0
0111 010
1100 010
0111 010
0
0
1110 10
0011 10
00010
00101
0
1
0
0111 0
1100 0
0111 0
01010
0
0
1110
0011  Resto
Cociente  10101
Comentarios
Inicio
RESTA: R1a R1a-R2,
BS=0
R3  1
Desplazamiento R1 izquierda
RESTA: R1a R1a-R2,
BS=1
RESTAURACIÓN: R1a R1a+R2
R3  0
Desplazamiento R1 izquierda
RESTA: R1a R1a-R2,
BS=0
R3  1
Desplazamiento R1 izquierda
RESTA: R1a R1a-R2,
BS=1
RESTAURACIÓN: R1a R1a+R2
R3  0
Desplazamiento R1 izquierda
RESTA: R1a R1a-R2,
BS=0
R3  1
DIVISIÓN SIN RESTAURACIÓN
BS  R1a R1b  R2
0
10011 1010
11100
1
10111 1010
R3
00000
00000
1
0
01111 010
01011 010
00001
0
1
10110 10
11010 10
1
0
10101 0
10001 0
1
0
00101
00010
00110  Resto
Cociente  01011
00010
Comentarios
Inicio
R1a R1a-R2, BS=1, próx bucle +
R3  BS’
Desplazamiento R1 izquierda
R1a R1a+R2, BS=0, próx bucle R3  BS’
Desplazamiento R1 izquierda
R1a R1a-R2, BS=1, próx bucle +
R3  BS’
Desplazamiento R1 izquierda
R1a R1a+R2, BS=0, próx bucle R3  BS’
Desplazamiento R1 izquierda
R1a R1a-R2, BS=0
R3  BS’
Descargar