Ejemplo 3.5

  • Unidad de memoria consiste de treinta y dos (32) células
  • Cada célula tiene dieciseis (16) posiciones
  • Solo trabaja en punto fijo

La codificación de las operaciones es:

suma 0 0 1 0 0 0 1 122 316
resta 0 0 1 0 1 0 1 122 B16
multiplicación 0 0 1 0 0 1 0 022 416
división 0 0 1 0 1 1 0 122 D16
comparación 0 0 1 0 1 1 1 022 E16
entrada (leer) 1 1 0 1 1 0 0 02D 816
salida (escribir) 0 0 1 0 0 1 1 122 716
mover Mem a ALU (cargar) 0 0 0 1 0 0 0 021 016
mover ALU a Mem (guardar)0 0 0 1 0 0 0 121 116
terminar 0 1 0 1 0 1 0 125 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élulainstruccióncodificación
00000000leer a 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1
00000001leer b 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0
00000010leer c 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1
00000011mover a al ALU 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1
00000100multiplicar por b0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0
00000101sumar c 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 1
00000110mover del ALU a y0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0
00000111escribir y 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0
00001000terminar 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0




Última modificación : Viernes 25 de julio de 1997

©Derechos Reservados - 1991 - Prof. H. D. A. Cabassa