Emulace je pokus o napodobení zařízení na konkrétním systému. Existují tři způsoby, jak vytvořit emulátory: dynamická a statická rekompilace a interpretace. K dosažení maximálního efektu rychlosti při práci se doporučuje použít všechny tři metody. Zvažme příklad psaní typického emulátoru procesoru.
Instrukce
Krok 1
Vyberte programovací jazyk. Doporučenou a pravděpodobně jedinou alternativou jsou C a Assembler. V jazyce C můžete vytvořit kód, který bude přenesen na jiné platformy. Je to poměrně jednoduché na pochopení a snadné ladění, ale mnohem pomaleji než ostatní. Assembler se vyznačuje vysokou rychlostí práce, používá registry procesorů, což přispívá k přiblížení programu k překompilování. Je však velmi obtížné v něm sledovat a opravovat kódy. Je důležité dobře znát zvolený jazyk a optimalizovat kód podle rychlosti.
Krok 2
Přiřaďte počáteční hodnotu cyklickému a programovému čítači. Cyklické počítadlo počítá počet hodinových cyklů, po kterých dojde k přerušení, a softwarový počítač zobrazí oblast paměti, ve které leží další instrukce opcode.
Krok 3
Poté, co obdržíte operační kód, odečtěte počet hodinových cyklů potřebných k provedení operačního kódu z počitadla smyčky. Upozorňujeme, že některé příkazy se liší počtem značek v závislosti na argumentech. U takových příkazů změňte počítadlo v běhovém kódu později.
Krok 4
Po úspěšném provedení operačního kódu zkontrolujte potřebu spouštět přerušení. V tomto okamžiku dokončete úkoly, které je naléhavě nutné synchronizovat včas.
Krok 5
Zkontrolujte každý průchod cyklu, zda není nutné dokončit jeho práci. Nezapomeňte, že program by měl být modulární, protože většina počítačů je tvořena moduly a typický emulátor by měl být, pokud je to možné, stejný jako původní systém. To zajistí rychlejší a jednodušší ladění programu a budete moci používat stejné moduly pro různé emulátory, protože mnoho počítačů je založeno na stejných modelech procesorů nebo video procesorů.