Para el ejercicio 6 yo hice el siguiente programa en MAL:
15 ALU := F; if z then goto 17
16 goto 0;
17 PC := AC; goto 0
En se caso los números que aparecen delante de las instrucciones fueron elegidos aleatoriamente y quise destacar el hecho de que si el valor de F es 0, entonces hay que volver a la instrucción 0 (suponiendo que el fetch empieza allí y que habrá más instrucciones para ejecutar). Una vez que se hace la asignación, entonces vuelve a la instrucción 0.
Para el ejercicio 7 quedó así:
MAR := A; rd
AC := MBR;
AC = AC + 1;
MAR := A; MBR := AC; wr
goto 0
En este caso no numeré las líneas porque no habría saltos y el goto al final muestra que el programa debe retornar a la instrucción 0 y seguir la ejecución del microprograma que está en la Control Store.
¿Está bien eso?
Saludos.