<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 80C51虛擬指令執(zhí)行系統(tǒng)的設計與實現(xiàn)

          80C51虛擬指令執(zhí)行系統(tǒng)的設計與實現(xiàn)

          作者: 時間:2011-07-04 來源:網(wǎng)絡 收藏

          摘要:文中以的體系結構和為基礎,,包括器和存儲器。這種方法適用于存儲空間和指令規(guī)模與相似的單片機指令,也可根據(jù)需要,增加對80C51單片機的虛擬范圍。
          關鍵字:80C51;虛擬;指令系統(tǒng)

          0 引言
          在進行嵌入式系統(tǒng)開發(fā)時,通常是在宿主機上通過交叉編譯方式生成目標機平臺的二進制代碼,然后將其寫入目標機中運行,這種開發(fā)方法的一個缺點是不易調(diào)試生成的目標代碼邏輯,因此,目前許多交叉編譯工具都具有在宿主機上調(diào)試源代碼的功能。要讓目標機平臺的二進制代碼能夠在宿主機上運行,必須提供一個虛擬的能夠目標機指令的系統(tǒng)。本文以80C51單片機為目標機,基于X86平臺的PC機為宿主機,給出了一種在宿主機上構造虛擬目標機指令執(zhí)行系統(tǒng)的方法。

          1 虛擬指令執(zhí)行系統(tǒng)簡介
          本文所述的80C51虛擬指令執(zhí)行系統(tǒng)是指用軟件來模擬80C51指令的執(zhí)行過程和執(zhí)行效果,它主要由虛擬指令執(zhí)行器和虛擬存儲器組成。虛擬指令執(zhí)行器是虛擬指令執(zhí)行系統(tǒng)的核心模塊,它將指令的執(zhí)行過程分為取指令、分析指令和執(zhí)行指令三個階段,模擬這三個階段的操作并虛擬出指令的執(zhí)行效果。虛擬存儲系統(tǒng)是虛擬指令執(zhí)行系統(tǒng)必不可少的模塊,它反映著虛擬指令執(zhí)行器執(zhí)行指令的效果,本文以80C51體系中存儲器的結構為依據(jù),虛擬出存儲器空間和寄存器,并提供了虛擬指令執(zhí)行器訪問虛擬存儲器的接口。
          圖1是虛擬80C51指令執(zhí)行系統(tǒng)的總體結構圖,同時圖1也顯示了系統(tǒng)運行的三個基本過程:

          本文引用地址:http://www.ex-cimer.com/article/172643.htm

          a.JPG


          (1)加載二進制文件到虛擬存儲器的ROM中
          (2)虛擬指令執(zhí)行器周期性地從虛擬存儲器的ROM中取指令、分析指令并且執(zhí)行指令
          (3)指令在執(zhí)行過程中通過讀寫虛擬存儲器中的內(nèi)存和寄存器來反映指令執(zhí)行效果
          顯然,上述過程是圍繞著虛擬指令執(zhí)行器和虛擬存儲器進行的。

          2 虛擬存儲器的
          加載過程和虛擬指令執(zhí)行器都依賴于虛擬存儲器,因此先介紹虛擬存儲器的是必要的。從訪問的角度分析,寄存器和存儲器具有同樣的屬性,可以使用類似的實現(xiàn)方法虛擬它們。本文虛擬存儲器的范圍包括虛擬的存儲空間和寄存器。
          2.1 虛擬80C51存儲空間
          80C51的存儲空間除了有ROM和RAM之分,還有片內(nèi)和片外之分。80C51指令在執(zhí)行的時候訪問的數(shù)據(jù)可以存在于以下四種類型的存儲單元中:片內(nèi)ROM,片外ROM,片內(nèi)RAM,片外RAM,它們的地址空間見表1。

          b.JPG


          上一頁 1 2 3 4 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();