SISA Assembler
Està inacabat (no té totes les instruccions), però és funcional.
També hi falten un parell d'instruccions que encara no he implementat (com MOVE
o IN
). Si apreteu el botó "Translate" i no hi apareix res, mireu la consola i segurament hi veureu un error semblant a "reached unreachable!()": vol dir que encara no l'he escrit. (Si voleu fer una PR de dues línies que em falten, endavant).
Compte!
- Si hi introdueixes un `n` immediat, ha d'estar amb hex i prefix (e.g. `0xF23F`). Si vols utilitzar decimal, et fas la conversió tu solet, que ja ets prou grandet (i no tinc ganes d'haver de detectar el cas i tot això).
- La entrada ha d'estar neta i sanejada. Si no és correcta, no puc prometre que ho detecti (és UB, podriem dir).
- Els enters haurien d'estar en Ca2 (e.g. `-1` seria `0xFFFF`, recorda que l'entrada ha d'estar en hex).
Tria aquí l'ordre amb el que els vols la sortida:
(si t'equivoques, és UB. Fes-ho bé.)
@A:
@B:
@D:
Rb/n:
op:
f:
In/Alu:
WrD:
@B:
@D:
Rb/n:
op:
f:
In/Alu:
WrD: