Estoy pensando en hacer una CPU basada en SUBLEQ en FPGA. SUBLEQ (restar y ramificar si es menor o igual a cero) es una instrucción que es universal. Sin embargo, ¿cómo puedes tener inmediatas / constantes con esto?
Estoy pensando en hacer una CPU basada en SUBLEQ en FPGA. SUBLEQ (restar y ramificar si es menor o igual a cero) es una instrucción que es universal. Sin embargo, ¿cómo puedes tener inmediatas / constantes con esto?
Una forma es que el compilador / ensamblador almacene constantes en ubicaciones fijas en la memoria a las que luego acceda con su instrucción usándola como operando. Como solo tiene una instrucción de resta, en realidad cargaría el complemento de 2 de la constante que necesita.
Esta técnica se usó con computadoras como el PDP-8, aunque podría crear algunas constantes con un uso juicioso de las diversas instrucciones del acumulador.
El PDP-8 solo tenía un campo de instrucción de 3 bits, por lo que 8 instrucciones básicas. Ni siquiera tenía un acumulador de carga, tenías que limpiar el acumulador y luego agregarle una constante. (Por supuesto que tenías que haber puesto esa constante en la memoria en primer lugar).
Este enlace muestra algunas técnicas (incluida esta) para usar la computadora de una sola instrucción. Utilizando las instrucciones SUBEQ
No tienes valores inmediatos disponibles para ti. En su lugar, debe calcularlos utilizando inteligentemente su instrucción subleq.
Lea otras preguntas en las etiquetas computer-architecture