Emulering er et forsøg på at efterligne en enhed på et specifikt system. Der er tre måder at opbygge emulatorer på: dynamisk og statisk rekompilering og fortolkning. For at opnå den maksimale hastighedseffekt, når du arbejder, anbefales det at bruge alle tre metoder. Lad os overveje et eksempel på at skrive en typisk processoremulator.
Instruktioner
Trin 1
Vælg et programmeringssprog. Det anbefalede og sandsynligvis det eneste alternativ er C og Assembler. I C kan du oprette kode, der overføres til andre platforme. Det er relativt simpelt at forstå og let at debugge, men meget langsommere end andre. Samleren er kendetegnet ved sin høje arbejdshastighed, den bruger processorregistre, hvilket bidrager til tilnærmelse af programmet til den rekompilerende. Det er dog meget vanskeligt at spore og rette koder i det. Det er vigtigt at kende det valgte sprog godt og optimere koden godt til hastighed.
Trin 2
Tildel en startværdi til den cykliske og programtælleren. Den cykliske tæller tæller antallet af urcyklusser, hvorefter afbrydelsen opstår, og softwarepc'en viser hukommelsesområdet, hvor den næste opcode-instruktion ligger.
Trin 3
Når du har modtaget opkoden, skal du trække antallet af urcyklusser, der kræves for at udføre opkoden fra loop-tælleren. Bemærk, at nogle kommandoer varierer i antal flåter afhængigt af argumenterne. For sådanne kommandoer skal du ændre tælleren i kørselskoden senere.
Trin 4
Efter vellykket udførelse af opkoden skal du kontrollere behovet for at udløse afbrydelser. På dette tidspunkt skal du udføre de opgaver, der hurtigst muligt skal synkroniseres i tide.
Trin 5
Kontroller hvert pass i cyklussen for behovet for at fuldføre sit arbejde. Husk, at programmet skal være modulært, da de fleste computere består af moduler, og en typisk emulator, hvis det er muligt, skal være den samme som det originale system. Dette giver hurtigere og lettere fejlfinding af programmet, og du vil være i stand til at bruge de samme moduler til forskellige emulatorer, fordi mange computere er baseret på de samme modeller af processorer eller videoprocessorer.