codifica_istruzioni.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #include "elea_tipi.h"
  2. #include "caratteri.h"
  3. /*
  4. * Istruzioni memoria-accumulatore
  5. */
  6. #define OP_DA CAR_A /* Dispone Accumulatore */
  7. #define OP_MA CAR_F /* Trasferisce da memoria ad accumulatore */
  8. #define OP_AM CAR_G /* Trasferisce da accumulatore a memoria (senza azzeramento) */
  9. #define OP_AoM CAR_B /* Trasferisce da accumulatore a memoria con azzeramento */
  10. #define OP_PIU_MA CAR_C /* Somma memoria ad accumulatore, risultato in accumulatore */
  11. #define OP_PIU_AM CAR_GAMMA /* Somma accumulatore e memoria, risultato in memoria */
  12. #define OP_MENO_MA CAR_H /* Sottrae memoria da accumulatore, risultato in accumulatore */
  13. #define OP_CMA CAR_E /* Confronta memoria con accumulatore */
  14. #define OP_FAM CAR_DELTA /* Fine accumulatore in memoria */
  15. /*
  16. * Istruzioni memoria-memoria
  17. */
  18. #define OP_PUM CAR_DIVISO /* Prepara uscita memoria */
  19. #define OP_MEM CAR_UNO /* Trasferisce da memoria a memoria */
  20. #define OP_PIU_MM CAR_TRE /* Somma memoria a memoria */
  21. #define OP_MENO_MM CAR_OTTO /* Sottrae memoria da memoria */
  22. #define OP_CMM CAR_BARRA /* Confronta memoria con memoria */
  23. /*
  24. * Istruzioni memoria-registri
  25. */
  26. #define OP_MT CAR_X /* Trasferisce da memoria a registro T */
  27. #define OP_TM CAR_Y /* Trasferisce da registro T a memoria */
  28. #define OP_ToM CAR_T /* Trasferisce da registro T a memoria con azzeramento */
  29. #define OP_PIU_MT CAR_U /* Somma memoria a registro T, risultato in registro */
  30. #define OP_PIU_TM CAR_MOLTIPLICATO_PER /* Somma registro a memoria, risultato in memoria */
  31. #define OP_MENO_MT CAR_Z /* Sottrae memoria da registro T, risultato in registro */
  32. #define OP_CMT CAR_W /* Confronta memoria con registro */
  33. #define OP_FTM CAR_TETA /* Fine registro T in memoria */
  34. /*
  35. * Istruzioni costanti-registri
  36. */
  37. #define OP_CT CAR_NOVE /* Trasferisce una costante in registro T */
  38. #define OP_PIU_CT CAR_PIU /* Somma costante a registro T */
  39. #define OP_MENO_CT CAR_QUATTRO /* Sottrae costante da registro T */
  40. #define OP_CCT CAR_DIESIS /* Confronta costante con registro T */
  41. /*
  42. * Istruzioni per la moltiplicazione
  43. */
  44. #define OP_Y CAR_6 /* Trasferisce il moltiplicatore nel registro T */
  45. #define OP_PIU_X CAR_UGUALE /* Moltiplicazione additiva */
  46. #define OP_MENO_X CAR_VIRGOLA /* Moltiplicazione sottrattiva */
  47. /*
  48. * Istruzioni per la ricerca in memoria
  49. */
  50. #define OP_RIa CAR_DUE /* Ricerca Avanti */
  51. #define OP_RIi CAR_SETTE /* Ricerca Indietro */
  52. /*
  53. * Istruzioni logiche
  54. */
  55. #define OP_XLD CAR_ESCLAMATIVO /* Moltiplicazione logica diretta (AND) */
  56. #define OP_XLN CAR_E_COMMERCIALE /* Moltiplicazione logica negata (NAND) */
  57. #define OP_PIU_LD CAR_V /* Somma logica (OR) */
  58. /*
  59. * Istruzioni relative al tavolo di comando
  60. */
  61. #define OP_CM CAR_PERCENTO /* Da tavolo/telescrivente/fotolettore a memoria */
  62. #define OP_MS CAR_PHI /* Da memoria a telescrivente */
  63. /*
  64. * Istruzioni di salto *TODO: sottocodici*
  65. */
  66. #define OP_SALTO CAR_ZERO