Emulyasiya müəyyən bir sistemdə bir cihazı təqlid etmək cəhdidir. Emülatörləri qurmağın üç yolu var: dinamik və statik yenidən tərtib və şərh. İşləyərkən maksimum sürət effektinə nail olmaq üçün hər üç metoddan istifadə etmək tövsiyə olunur. Tipik bir prosessor emulyatorunun yazılması nümunəsini nəzərdən keçirək.
Təlimat
Addım 1
Proqramlaşdırma dilini seçin. Tövsiyə olunan və ehtimal ki, yeganə alternativ C və Assemblerdir. C-də, digər platformalara köçürüləcək kodu edə bilərsiniz. Anlamaq nisbətən sadədir və səhvləri düzəltmək asandır, lakin digərlərindən daha yavaşdır. Montajçı yüksək iş sürəti ilə seçilir, proqramın yenidən tərtib edilənə yaxınlaşmasına kömək edən prosessor registrlərindən istifadə edir. Ancaq içindəki kodları izləmək və düzəltmək çox çətindir. Seçilən dili yaxşı bilmək və sürət üçün kodu yaxşı optimallaşdırmaq vacibdir.
Addım 2
Dairəvi və proqram sayğacına ilkin dəyər təyin edin. Dövr sayğacı fasilənin baş verdiyi saat dövrlərinin sayını hesablayır və proqram təminatı kompüteri növbəti opcod təlimatının yerləşdiyi yaddaş sahəsini göstərir.
Addım 3
Opcodu aldıqdan sonra, opcodu loop sayğacından yerinə yetirmək üçün lazım olan saat dövrlərinin sayını çıxarın. Xahiş edirik unutmayın ki, bəzi əmrlər mübahisələrə görə gənələrin sayına görə fərqlənir. Bu cür əmrlər üçün daha sonra işləmə kodundakı sayğacı dəyişdirin.
Addım 4
Opcodun müvəffəqiyyətlə yerinə yetirilməsindən sonra, kəsilmələrin başlanmasına ehtiyac olduğunu yoxlayın. Bu nöqtədə təcili olaraq vaxtında sinxronlaşdırılması lazım olan işləri tamamlayın.
Addım 5
Dövrün hər bir keçidini işini başa çatdırmaq üçün yoxlayın. Unutmayın ki, proqram modul olmalıdır, çünki əksər kompüterlər modullardan ibarətdir və tipik bir emulator, mümkünsə orijinal sistemlə eyni olmalıdır. Bu, proqramın daha sürətli və asan bir şəkildə həllini təmin edəcək və fərqli emulyatorlar üçün eyni modullardan istifadə edə biləcəksiniz, çünki bir çox kompüter eyni prosessor və ya video prosessor modellərinə əsaslanır.