algoritmo de booth
MULTIPLICACIÓN
1.- Multiplicar los números 27 y -7 utilizando representación binaria en
complemento a 2, con el mínimo número posible de bits y empleando el
algoritmo apropiado.
Vamos a multiplicar +27 (multiplicando) por -7 (multiplicador) con el algoritmo de
Booth.
+ 27 0 11011
- 271 00101
Inicio
Resta
Increm. Cont
Desp. y rotac.
Suma
Increm. Cont
Desp. yrotac.
Nada
Increm. Cont
Desp. y rotac.
Resta
Increm. Cont
+7 0 111
- 7 1 001
R1
C R3
11011 0 00000
1 00101 +
11011 1 00101
11011 1 00101
11011 1 10010
0 11011 +
11011 0 01101
11011 0 01101
11011 0 00110
0 00000 +
11011 0 00110
11011 0 00110
11011 0 00011
1 00101 +
11011 1 01000
11011 1 01000
Desp. y rotac. 11011 1 10100
R4
R2 R2-1
xxxx 100 1 0
Contador
0
xxxx 100 1
xxxx 100 1
1xxx 010 0
00
1
0
1
1
1xxx 010 0
1xxx 010 0
11xx 101 0
1
1
0
1
2
2
11xx 101 0
11xx 101 0
011x 010 1
0
0
0
2
3
3
011x 010 1
011x 010 1
0
0
3
4
0011 001 0
1
4 Fin
NOTA 1: “Resta” supone sumar lo que hay en R3 con 1 00101 (-27) y “Suma” supone
sumar lo que hay en R3 con 0 11011 (+27).
NOTA 2: R2 y R4 podrían ser el mismo registro, ya que a medida que van entrando bits
desde la izquierda a R4, vandejando de ser necesarios los mismos bits en R2.
NOTA 3: Obsérvese que el valor de la columna R1 del multiplicando R1 no varía en el
proceso, con lo cual se podría prescindir de ella. Simplemente se suma o resta, según el
caso, con C R3.
1
2.- Realizar la multiplicación de los números 38 (multiplicando) y -6
(multiplicador) empleando representación binaria en complemento a 2 con
el mínimonúmero de bits y utilizando para ello el algoritmo apropiado.
Vamos a multiplicar +38 (multiplicando) por -6 (multiplicador) con el algoritmo de
Booth
+38 0 100110
-38 1 011010
Operación
Inicio
+6 0 110
- 6 1 010
Resta
Increm. Cont
C
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
Desp. y rotac.
1 110001
Nada
Increm. Cont
Desp. y rotac.
Resta
Increm. Cont
Desp. y rotac.
Suma
Increm. Cont
Desp. y rotac.R3
000000
000000 +
000000
000000
000000
011010 +
011010
011010
101101
100110 +
010011
010011
001001
011010 +
100011
100011
R2=R4 R2-1 Contador
101 0 0
0
101 0 0
101 0 0
010 1 0 (*)
0
1
1
010 1 0
010 1 0
001 0 1 (*)
1
2
2
001 0 1
001 0 1
100 1 0 (*)
2
3
3
100 1 0
100 1 0
3
4
1100 0 1 (*)
4 Fin
NOTA 1: “Resta” supone sumar lo que hay en R3 con 1 011010 (-38) y “Suma” supone
sumar lo quehay en R3 con 0 100110 (+38).
NOTA 2: se han unido en un único registro R2 y R4.
NOTA 3: Se ha prescindido de la columna R1.
(*): El anterior bit R2-1, tras desplazarse a la derecha, se pierde.
2
3.- Multiplique, empleando el algoritmo adecuado, (13) x (-10) siendo +13
el multiplicando y -10 el multiplicador.
+13 +R1 = 0 1101
+10 0 1010
-13 -R1 = 1 0011
- 10 1 0110
Operación
C R3R4=R2
R2-1
Comentarios
Inicio
00000
10110
0
No hay cambio de bit
Desplazamiento derecha
00000
01011
0 (*)
Comienza cadena unos
Resta
10011+
Resultado resta
10011
01011
0
Desplazamiento derecha
11001
10101
1 (*)
No hay cambio de bit
Desplazamiento
11100
11010
1 (*)
Comienza cadena ceros
Suma
01101+
Resultado suma
01001
11010
1
Desplazamiento derecha
00100
111010 (*)
Resta
10011+
Resultado resta
10111
11101
0
Desplazamiento
11011
11110
1 (*)
Comienza cadena unos
Fin
NOTA: “Resta” supone sumar lo que hay en la parte alta con 1 0011 (-13) y “Suma”
supone sumar lo que hay en la parte alta con 0 1101 (+13).
(*): El anterior bit R2-1, tras desplazarse a la derecha, se pierde.
3
DIVISIÓN
4. Realice la operación 38 dividido entre 6, aplicandoun algoritmo de
división CON y SIN restauración. Escribir todo el desarrollo del algoritmo.
CON RESTAURACIÓN
38 → 0 100110
+6 → 0 110 (+R2)
- 6 → 1 010 (-R2)
Operación
Inicio
Resta siempre
Resultado resta
Suma para restaurar
Suma restaurada
Desplazamiento izquierda
Resta siempre
Resultado resta
Desplazamiento izquierda
Resta siempre
Resultado resta
Desplazamiento izquierda
Resta siempre...
Regístrate para leer el documento completo.