blob: 8780350a0dacd8f9356c49257a1213fcb72a3e62 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#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
|