Emulācija ir mēģinājums atdarināt ierīci noteiktā sistēmā. Ir trīs veidi, kā veidot emulatorus: dinamiska un statiska atkārtota kompilācija un interpretācija. Lai sasniegtu maksimālo ātruma efektu, strādājot, ieteicams izmantot visas trīs metodes. Apskatīsim tipiska procesora emulatora rakstīšanas piemēru.
Instrukcijas
1. solis
Izvēlieties programmēšanas valodu. Ieteicamā un, iespējams, vienīgā alternatīva ir C un Assembler. C, jūs varat izveidot kodu, kas tiks pārnests uz citām platformām. Tas ir samērā vienkārši saprotams un viegli atkļūdojams, bet daudz lēnāk nekā citi. Montētājs izceļas ar lielu darba ātrumu, tas izmanto procesoru reģistrus, kas veicina programmas tuvināšanu pārkompilētajam. Tomēr tajā ir ļoti grūti izsekot un labot kodus. Ir svarīgi labi zināt izvēlēto valodu un labi optimizēt kodu ātrumam.
2. solis
Piešķiriet sākotnējo vērtību cikliskajam un programmu skaitītājam. Cikliskais skaitītājs saskaita pulksteņa ciklu skaitu, pēc kura notiek pārtraukums, un programmatūras personālais dators parāda atmiņas apgabalu, kurā atrodas nākamā opkoda instrukcija.
3. solis
Kad esat saņēmis opkodu, no cilpas skaitītāja atņemiet pulksteņa ciklu skaitu, kas nepieciešams, lai izpildītu opkodu. Lūdzu, ņemiet vērā, ka dažas komandas atšķiras pēc ērču skaita atkarībā no argumentiem. Šādām komandām vēlāk mainiet skaitītāju palaišanas kodā.
4. solis
Pēc veiksmīgas opkoda izpildes pārbaudiet nepieciešamību aktivizēt pārtraukumus. Šajā brīdī izpildiet uzdevumus, kas steidzami jāinhronizē laikā.
5. solis
Pārbaudiet katru cikla pāreju, vai nav nepieciešams pabeigt darbu. Atcerieties, ka programmai jābūt modulārai, jo lielāko daļu datoru veido moduļi, un tipiskam emulatoram, ja iespējams, jābūt tādam pašam kā sākotnējai sistēmai. Tas nodrošinās ātrāku un vienkāršāku programmas atkļūdošanu, un jūs varēsiet izmantot tos pašus moduļus dažādiem emulatoriem, jo daudzu datoru pamatā ir vieni un tie paši procesoru vai video procesoru modeļi.