Emulyatsiya - bu ma'lum bir tizimdagi qurilmani taqlid qilishga urinish. Emulyatorlarni yaratishning uchta usuli mavjud: dinamik va statik qayta kompilyatsiya va talqin. Ishlayotganda maksimal tezlik ta'siriga erishish uchun uchta usuldan ham foydalanish tavsiya etiladi. Oddiy protsessor emulyatorini yozish misolini ko'rib chiqamiz.
Ko'rsatmalar
1-qadam
Dasturlash tilini tanlang. Tavsiya etilgan va ehtimol yagona alternativ - bu C va Assembler. C-da siz boshqa platformalarga ko'chiriladigan kodni yaratishingiz mumkin. Tushunish nisbatan sodda va disk raskadrovka qilish oson, ammo boshqalarnikiga qaraganda ancha sekin. Assembler o'zining yuqori ish tezligi bilan ajralib turadi, u protsessor registrlaridan foydalanadi, bu dasturni qayta kompilyatsiya qilinadigan dasturga yaqinlashishiga yordam beradi. Biroq, undagi kodlarni kuzatish va tuzatish juda qiyin. Tanlangan tilni yaxshi bilish va tezlik uchun kodni yaxshi optimallashtirish muhimdir.
2-qadam
Tsiklik va dastur hisoblagichiga dastlabki qiymatni bering. Tsiklik hisoblagich uzilish sodir bo'ladigan soat tsikllari sonini hisoblaydi va dasturiy ta'minot kompyuterida keyingi opcode buyrug'i joylashgan xotira maydoni ko'rsatiladi.
3-qadam
Opcode-ni olganingizdan so'ng, opcode-ni loop hisoblagichidan bajarish uchun zarur bo'lgan soat tsikllari sonini chiqaring. Iltimos, ba'zi buyruqlar argumentlarga qarab Shomil soni bo'yicha farq qiladi. Bunday buyruqlar uchun keyinroq ishlaydigan koddagi hisoblagichni o'zgartiring.
4-qadam
Opcode muvaffaqiyatli bajarilgandan so'ng, uzilishlarni boshlash zarurligini tekshiring. Shu nuqtada, o'z vaqtida sinxronlashtirilishi kerak bo'lgan vazifalarni bajaring.
5-qadam
Tsiklning har bir o'tishini o'z ishini yakunlash zarurligini tekshiring. Dastur modulli bo'lishi kerakligini unutmang, chunki aksariyat kompyuterlar modullardan iborat va odatdagi emulyator, iloji bo'lsa, asl tizim bilan bir xil bo'lishi kerak. Bu dasturni tezroq va osonroq disk raskadrovka qilishni ta'minlaydi va siz turli xil emulyatorlar uchun bir xil modullardan foydalanishingiz mumkin, chunki ko'plab kompyuterlar bir xil protsessor yoki video protsessor modellariga asoslangan.