Un fabricante quiere simular el comportamiento de su próximo microprocesador para poder ejecutar una serie de programas. Nos informa que el microprocesador tiene:
- Dos registros A y B numéricos
- Un program counter (PC) que apunta a la que indica la dirección de la próxima instrucción a ejecutar y se incrementa cada vez que el microprocesador ejecuta una instrucción según la cantidad de bytes que ocupa.
Instrucción | Bytes | Descripción |
---|---|---|
NOP | 1 | No operación, el programa sigue en la próxima instrucción |
ADD | 1 | Suma los valores de los dos registros y guarda el resultado en A |
SUB | 1 | Resta el valor del registro A al valor del registro B y guarda el resultado en A |
MUL | 1 | Multiplica los valores de los dos registros y guarda el resultado en A |
DIV | 1 | Divide los valores de los dos registros y guarda el resultado en A |
SWAP | 1 | Intercambia los valores de los registros |
LODV val | 2 | Carga en el registro A el valor val |
HALT | 1 | Detiene la ejecución del programa |
Instrucción | Bytes | Descripción |
---|---|---|
IFNZ instrs | 1 | Ejecuta el conjunto instrs de instrucciones si el valor del registro A es distinto de cero |
WHNZ instrs | 1 | Ejecuta el conjunto instrs de instrucciones mientras el valor del registro A sea distinto de cero |