回答
8086有一個非常複雜的架構。爲了您第一次寫模擬器,我建議使用一個更簡單的8位芯片,例如8090/8085系列。我曾經在一週內爲FORTRAN的8080編寫了一個模擬器,包括彙編器,調試器等。
模擬器的工作方式非常簡單 - 您有一個代表內存的數組,它填充了正確的機器碼或你的程序。隨後,您會在模擬編程計數器中解釋機器代碼,然後根據正在執行的操作碼調整程序計數器。要做到這一點,您需要處理器的規格,以及對組件/機器代碼和處理器架構的相當好的理解。
@Neil - 有趣的。這是一個個人項目嗎?你有沒有想過讓Fortran源代碼可用?作爲一名前四強的程序員,我很好奇看到它。 – 2010-06-01 12:10:25
@Simon這是當時我工作的理工學院(20世紀80年代中期),運行在DEC-10,VAX和IBM 4381上,並用於教授彙編程序的課程。不幸的是,我不再有代碼。 – 2010-06-01 12:18:17
@尼爾OK。我記得當時IBM 4300系列的所有EBCDIC機器。我的大部分IBM Assembly是在這些編程上做的。 – 2010-06-01 13:40:33
看來你在談論JPC。你可以下載它的源代碼;希望它會有很好的記錄和評論。您也可以嘗試在其source forge support forums中索要文件。
是的,我的源碼是JPC和dioscuri。 – user355347 2010-06-01 18:15:00
有一個名爲「DosBox」的開源80x86仿真器。您可以使用其來源作爲參考。
- 1. 創建MyTouch 3G仿真器
- 2. 如何直接在仿真器中創建數據庫
- 3. 在仿真器上仿真運動API
- 4. Javascript仿真器
- 5. Hololens仿真器
- 6. 創建仿真數據中的R
- 7. Matlab/Simulink仿真:創建事實表
- 8. Commodore C64仿真器?
- 9. 路由器仿真
- 10. 我可以使用HAXM仿真器以外的其他仿真器來創建Android應用嗎?
- 11. 我如何使仿真器在安卓
- 12. 安卓:文件中創建不在仿真器圖標
- 13. org.openqa.selenium.SessionNotCreatedException:無法創建新的遠程會話。而在仿真器
- 14. 爲當前Android手機創建仿真器
- 15. 如何使用自定義屏幕尺寸創建新仿真器?
- 16. 如何加速Android仿真?
- 17. Android仿真器與真實設備
- 18. 仿真服務在仿真器中崩潰
- 19. 在Windows機器上進行網絡仿真/仿真?
- 20. 使用硬件仿真的Android Studio仿真器顯示錯誤
- 21. Android仿真器黑屏與「GPU仿真 - 是」
- 22. Galaxy Note II仿真器
- 23. Java中的MySQL仿真器
- 24. DocumentDB仿真器REST API
- 25. Android仿真器凸輪
- 26. 仿真器到實體
- 27. Visual Studio Windows仿真器
- 28. 仿真器在應用
- 29. Android Studio NFC仿真器
- 30. Android仿真器鍵盤
對[codegolf](http://codegolf.stackexchange.com/questions/4732/emulate-an-intel-8086-cpu)實現8086的子集存在代碼挑戰。 – 2012-12-22 11:14:29