50 wiersze
1,5 KiB
C
50 wiersze
1,5 KiB
C
#define statico static
|
|
typedef uint8_t carattere;
|
|
typedef int8_t segno;
|
|
|
|
|
|
|
|
/* bit gA: valido solo se il carattere e` letto da Accumulatore.
|
|
* Nelle operazioni aritmetiche le cifre che lo seguono sono zeri
|
|
* Nei trasferisferimento a mem principale il bit e` ignorato i
|
|
*/
|
|
#define gA(x) ((x >> 7) & 0x01)
|
|
|
|
|
|
struct __attribute__((packed)) istruzione_gen {
|
|
carattere F; /* Tipo di funzione */
|
|
carattere Tm; /* Modificatore */
|
|
carattere I[4]; /* Indirizzo */
|
|
carattere L[2]; /* Lunghezza */
|
|
};
|
|
|
|
|
|
struct __attribute__((packed)) istruzione_t {
|
|
carattere F; /* Tipo di funzione */
|
|
carattere Tm; /* Modificatore */
|
|
carattere To; /* Indirizzo del secondo operando*/
|
|
carattere L[2]; /* Lunghezza */
|
|
};
|
|
|
|
struct __attribute__((packed)) istruzione_c {
|
|
carattere F; /* Tipo di funzione */
|
|
carattere To; /* Registro operando */
|
|
carattere C[5]; /* Costante */
|
|
carattere X; /* Non utilizzato */
|
|
};
|
|
|
|
struct __attribute__((packed)) istruzione_s {
|
|
carattere F; /* Tipo di funzione */
|
|
carattere Tm; /* Modificatore */
|
|
carattere I[4]; /* Indirizzo per il salto */
|
|
carattere Ts; /* Indirizzo da cui avviene il salto */
|
|
carattere E; /* Eventualita` */
|
|
};
|
|
|
|
struct __attribute__((packed)) istruzione_n {
|
|
carattere F; /* Tipo di funzione */
|
|
carattere Tm; /* Modificatore */
|
|
carattere I[4]; /* Indirizzo del blocco in memoria */
|
|
carattere n; /* Unita` nastro */
|
|
carattere X; /* Non utilizzato */
|
|
};
|