Ejemplo 3.5
La codificación de las operaciones es:
suma 0 0 1 0 0 0 1 12 2 316 resta 0 0 1 0 1 0 1 12 2 B16 multiplicación 0 0 1 0 0 1 0 02 2 416 división 0 0 1 0 1 1 0 12 2 D16 comparación 0 0 1 0 1 1 1 02 2 E16 entrada (leer) 1 1 0 1 1 0 0 02 D 816 salida (escribir) 0 0 1 0 0 1 1 12 2 716 mover Mem a ALU (cargar) 0 0 0 1 0 0 0 02 1 016 mover ALU a Mem (guardar) 0 0 0 1 0 0 0 12 1 116 terminar 0 1 0 1 0 1 0 12 5 516 .......
Se interesa atender el siguiente problema:
Dado tres valores: a, b, y c;
se desea computar 'y = a b + c'
Con los conocimientos adquiridos hasta este punto podemos inferir la siguiente secuencia lógica de pasos:
- leer a
- leer b
- leer c
- move a al ALU
- multiplicar por b
- sumar c
- mover ALU a y
- escribir y
- terminar
Para codificar un programa en una computadora debemos escoger arbitrariamente las células consecutivas que utilizaremos para las instrucciones y cuales utilizaremos para los valores. Digamos que utilizaremos las células 21, 22, 23, y 24 para a, b, c, y y. Para las instrucciones utilizaremos las células consecutivas comenzando con la 0.
Programa:
célula | instrucción | codificación |
00000000 | leer a | 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 |
00000001 | leer b | 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 |
00000010 | leer c | 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 |
00000011 | mover a al ALU | 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 |
00000100 | multiplicar por b | 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 |
00000101 | sumar c | 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 1 |
00000110 | mover del ALU a y | 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 |
00000111 | escribir y | 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 |
00001000 | terminar | 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 |
©Derechos Reservados - 1991 - Prof. H. D. A. Cabassa