Paso 1: Las instrucciones de la CPU
Para que un CPU hacer cualquier trabajo significativo, necesita que se les diga qué hacer. Esto viene en forma de instrucciones. Para este reloj de pared me centraré sólo en las horas para hacer las cosas simples. Es decir, se incrementa una variable denominada horas y verifique si su igual a 11 (usaremos base de indexación para las horas, por lo que 12 se representa como un 0 de 0). Si el cheque es verdadero, entonces nos volverá la espalda variable a 0. No queremos la declaración anterior directamente en la CPU, el código ya que queremos que sea de uso general CPU (de lo contrario sólo hacemos un reloj). Por lo tanto, vamos a implementar un conjunto de instrucciones básicas y escribe el código del reloj alrededor de estas instrucciones primitivas (el conjunto de instrucciones a ejecutar se conocen como un lenguaje de ensamblador). Por último, guardaremos la variable de horas en un registro, que es un término dado por un componente de la memoria especial usado para mantener datos y operar en él. También usaremos una simple dirección de memoria de 1 unidad (1 bit) para actuar como una bandera para la unidad de control y el nombre DTD por razones personales (soportes para dedicado a Dani. Una larga historia). Tenga en cuenta que este CPU se programan con las instrucciones de reloj, pero puede programarse con cualquier otro código para hacer un número de otras cosas.
Aquí están las instrucciones básicas (lenguaje ensamblador) que vamos a usar:
INCRMENT: Incremento de registro A agregando 1 a él.
IGUALDAD: Si registro A es igual a un número específico, siga la siguiente instrucción.
CLARO: registro A se establece en 0, DTD a false
SALTAR: saltar a una instrucción específica en un número de línea determinado
SET_DTD: sistema DTD en true
CHECK_DTD: si DTD es true, siga la siguiente instrucción.
Aquí está el código de lenguaje ensamblador para el reloj (A mantendrá las horas de registro).
1: CHECK_DTD
2: SALTO 5
3: CLARO
4: SALTO 1
5: INCREMENTO DE
6: 11 IGUAL
7: SALTO 1
8: SET_DTD
9: SALTO 1
Línea 1 comprueba para ver si el DTD se establece en true (esto se usa para indicar si se trata de restablecer la hora). Si es cierto el salto a la línea 3 y ajustar la hora 0 y la DTD en false. Si el DTD es falsa entonces continuar con la siguiente instrucción y saltar a la línea 5. Línea de incrementos de 5 la hora (registro A), mientras que la retención de la línea 6 para ver si igual a 11. Si registro A es igual a 11, entonces salta a la línea 8 y la DTD a true y salta de vuelta al principio (línea 1). De lo contrario, nos vamos al principio. Si corremos aunque este código una vez una hora, luego leyendo el registro A, podemos decir lo que es la hora actual.