Browse Source

Aggiunti codici operativi istruzioni

Daniele Lacamera 4 years ago
parent
commit
c3adbeb8ad
1 changed files with 77 additions and 0 deletions
  1. 77 0
      codifica_istruzioni.h

+ 77 - 0
codifica_istruzioni.h

@@ -0,0 +1,77 @@
+#include "elea_tipi.h"
+
+
+/*
+ * Istruzioni memoria-accumulatore 
+ */
+#define OP_DA CAR_A /* Dispone Accumulatore */
+#define OP_MA CAR_F /* Trasferisce da memoria ad accumulatore */
+#define OP_AM CAR_G /* Trasferisce da accumulatore a memoria (senza azzeramento) */
+#define OP_AoM CAR_B /* Trasferisce da accumulatore a memoria con azzeramento */
+#define OP_PIU_MA CAR_C /* Somma memoria ad accumulatore, risultato in accumulatore */
+#define OP_PIU_AM CAR_GAMMA /* Somma accumulatore e memoria, risultato in memoria */
+#define OP_MENO_MA CAR_H /* Sottrae memoria da accumulatore, risultato in accumulatore */
+#define OP_CMA CAR_E    /* Confronta memoria con accumulatore */
+#define OP_FAM CAR_DELTA /* Fine accumulatore in memoria */
+
+/*
+ * Istruzioni memoria-memoria
+ */
+#define OP_PUM CAR_DIVISO /* Prepara uscita memoria */
+#define OP_MEM CAR_UNO   /* Trasferisce da memoria a memoria */
+#define OP_PIU_MM CAR_TRE /* Somma memoria a memoria */
+#define OP_MENO_MM CAR_OTTO /* Sottrae memoria da memoria */
+#define OP_CMM CAR_BARRA  /* Confronta memoria con memoria */
+
+/*
+ * Istruzioni memoria-registri
+ */
+#define OP_MT CAR_X  /* Trasferisce da memoria a registro T */
+#define OP_TM CAR_Y  /* Trasferisce da registro T a memoria */
+#define OP_ToM CAR_T /* Trasferisce da registro T a memoria con azzeramento */
+#define OP_PIU_MT CAR_U /* Somma memoria a registro T, risultato in registro */
+#define OP_PIU_TM CAR_MOLTIPLICATO_PER /* Somma registro a memoria, risultato in memoria */
+#define OP_MENO_MT CAR_Z /* Sottrae memoria da registro T, risultato in registro */
+#define OP_CMT CAR_W    /* Confronta memoria con registro */
+#define OP_FTM CAR_TETA /* Fine registro T in memoria */
+
+/*
+ * Istruzioni costanti-registri
+ */
+#define OP_CT CAR_NOVE  /* Trasferisce una costante in registro T */
+#define OP_PIU_CT CAR_PIU /* Somma costante a registro T */
+#define OP_MENO_CT CAR_QUATTRO /* Sottrae costante da registro T */
+#define OP_CCT CAR_DIESIS  /* Confronta costante con registro T */
+
+/*
+ * Istruzioni per la moltiplicazione
+ */
+
+#define OP_Y CAR_6 /* Trasferisce il moltiplicatore nel registro T */
+#define OP_PIU_X CAR_UGUALE /* Moltiplicazione additiva */
+#define OP_MENO_X CAR_VIRGOLA /* Moltiplicazione sottrattiva */
+
+/*
+ * Istruzioni per la ricerca in memoria
+ */
+#define OP_RIa CAR_DUE /* Ricerca Avanti */
+#define OP_RIi CAR_SETTE /* Ricerca Indietro */
+
+/*
+ * Istruzioni logiche
+ */
+#define OP_XLD CAR_ESCLAMATIVO  /* Moltiplicazione logica diretta (AND) */
+#define OP_XLN CAR_E_COMMERCIALE  /* Moltiplicazione logica negata (NAND) */
+#define OP_PIU_LD CAR_V /* Somma logica (OR) */
+
+/*
+ * Istruzioni relative al tavolo di comando
+ */
+#define OP_CM CAR_PERCENTO  /* Da tavolo/telescrivente/fotolettore a memoria */
+#define OP_MS CAR_PHI       /* Da memoria a telescrivente */
+
+/*
+ * Istruzioni di salto *TODO: sottocodici*
+ */
+#define OP_SALTO CAR_ZERO
+