Genial, ya tenemos una calculadora básica. ¿Cómo podemos evolucionar
esto para conseguir una computadora?

Código.

Ahora que sabés cómo están hechos los datos, explicar el código es fácil. Simplemente es un conjunto de datos. La razón por la que difiere del resto
de los datos es que la CPU lo interpreta como instrucciones.

Digamos que queríamos que la computadora haga cuentas, entonces
podríamos usar un sistema como:

instrucción código
"sumar un número con otro"    00000001
"restar un número a otro"    00000010

Con esto, podemos establecer qué compuertas lógicas se usan basándose
en los datos.

Ahora, muy rápidamente, la memoria se organiza en la computadora con
algo llamado "direcciones de memoria", que es básicamente una forma de
permitirle a la CPU que pida el valor de la memoria en una ubicación
específica. En general, las direcciones se asignan a cada "byte", que es
simplemente otra forma de decir "ocho bits". Así que si quisiéramos acceder
a la dirección de memoria cinco, podríamos almacenarlo como '00000101'.

Volvamos a nuestra tabla y agregemos algo más:

"mover un dato a alguna ubicación"    00000011

Genial. Ahora podemos decir algo como:

  "sumar el número en la posición de memoria #5 con el número de la
  posición de memoria #7"

Partiéndolo en:

  (sumar) (posición de memoria #5) (posición de memoria #7)

Que en realidad no es más que:

  00000001 00000101 00000111

Hermoso, ¿no?

<left 6/8 next>