#ifndef __SIMULATOR_H__ #define __SIMULATOR_H__ #include "types.h" #define TAILLE_MEMOIRE 1024 /* Nombre maximum de mots que peut contenir la mémoire principale */ #define NB_REGISTRES_PHYSIQUES 64 /* Nombre réel de registres */ #define NB_REGISTRES_UTILISABLES 32 /* Nombre de registres que le processeur a à sa disposition */ #define REG_RG 32 /* Numero du registre Rg */ #define REG_RD 33 /* Numero du registre Rd */ #define REG_PC 34 /* Numero du registre PC */ #define REG_FLAG 35 /* Numero du registre de flags */ #define REG_STACKPTR 36 /* Numero du registre de Push-Pop */ #define ADD_SP (TAILLE_MEMOIRE-1) /* Emplacement de la pile */ extern Uint32 memoire_principale[TAILLE_MEMOIRE]; extern Uint32 registre[NB_REGISTRES_PHYSIQUES]; /* Registres classiques */ Uint32 LireInstruction(void); void IncrementeCompteurOrdinal(void); Uint32 Adresse(Uint32 u, Uint32 instruction); void Initialisation(void); void DecodeExec(Uint32 instruction, Uint32 entrypoint); void Traitement(Uint32 entrypoint); void AfficheReg(void); void Debogueur(void); void ChargeBinaire(char * filename); #endif