中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于X86平臺(tái)的ARM指令集模擬器的設(shè)計(jì)

        基于X86平臺(tái)的ARM指令集模擬器的設(shè)計(jì)

        作者: 時(shí)間:2016-10-10 來源:網(wǎng)絡(luò) 收藏

        2.2 指令集的流程設(shè)計(jì)
        是按照解釋型的模擬策略設(shè)計(jì)的。解釋型指令集模擬器基本上是以軟件實(shí)現(xiàn)的虛擬機(jī),它以解釋的形式在宿主機(jī)上執(zhí)行加載的目標(biāo)代碼,它的主體是一個(gè)具有3步過程的循環(huán)體,分別對應(yīng)取指令、指令譯碼、指令執(zhí)行3步操作。因此本指令集模擬器的核心流程就是加載程序,之后進(jìn)入讀取指令、指令譯碼和指令執(zhí)行的循環(huán)體中,當(dāng)所有目標(biāo)代碼都執(zhí)行之后結(jié)束并顯示運(yùn)行結(jié)果。整個(gè)流程如圖4指令模擬器的工作流程所示。

        本文引用地址:http://www.antipu.com.cn/article/201610/306034.htm

        b.JPG


        2.3 指令集模擬器的主要功能模塊設(shè)計(jì)
        2.3.1 指令譯碼模塊
        指令譯碼模塊的功能就是根據(jù)ARM指令集編碼,將要執(zhí)行的二進(jìn)制指令譯碼成操作碼、操作數(shù)、條件碼等指令模擬需要的信息。指令集模擬器的每一模擬步模擬一條指令的取指令、譯碼、執(zhí)行等各個(gè)階段,因此指令集模擬器中的指令譯碼與實(shí)際ARM處理器的譯碼并不是完全對應(yīng),同時(shí)也不會(huì)影響模擬的正確性。
        在指令譯碼模塊中,本文采用分類的思想,將指令集按照一定的規(guī)律進(jìn)行分類解析,逐步解析,找到最終指令所對應(yīng)的解析函數(shù)。這樣做的目的是為了減少判斷指令時(shí)的條件判斷次數(shù),采用分治的思想提高指令譯碼的效率。不過要想對指令譯碼效率有顯著性的提高,還是要采用改進(jìn)型的工作流程,主要原因是在指令譯碼的過程中,會(huì)出現(xiàn)大量的重復(fù)譯碼,所以改進(jìn)型的工作流程中提出的指令緩存技術(shù)會(huì)很好的提高譯碼效率,減少重復(fù)的譯碼工作。
        2.3.2 指令模擬與調(diào)度模塊
        指令模擬與調(diào)度功能模塊是指令集模擬器的核心部分,也是實(shí)現(xiàn)代碼量最大的部分,主要包括與虛擬指令集定義對應(yīng)的一系列指令模擬函數(shù)、指令執(zhí)行控制函數(shù)、指令翻譯調(diào)度函數(shù)、中斷處理函數(shù)以及一些公用函數(shù)。指令執(zhí)行控制函數(shù)負(fù)責(zé)控制整個(gè)模擬過程,反匯編結(jié)果文件加載完畢后,程序就進(jìn)入核心部分的模擬循環(huán);指令翻譯調(diào)度函數(shù)負(fù)責(zé)將目標(biāo)指令轉(zhuǎn)化為虛擬指令形式,然后指令模擬函數(shù)按照相應(yīng)指令的功能定義完成指令的模擬,模擬結(jié)果是修改存儲(chǔ)器、寄存器值:公用函數(shù)主要包括尋址方式判別、指令操作數(shù)分析、指令條件碼判別、移位操作、ALU操作以及寄存器訪問等。指令模擬與調(diào)度的循環(huán)過程如下:
        1)取指令
        該模擬器的輸入是二進(jìn)制可執(zhí)行文件,因此取指令時(shí),根據(jù)PC值取得的當(dāng)前的指令,進(jìn)行譯碼。
        2)翻譯
        調(diào)用指令翻譯函數(shù)獲得虛擬指令。
        3)調(diào)度
        根據(jù)指令類型,調(diào)用相應(yīng)的指令模擬函數(shù)。
        4)執(zhí)行
        指令模擬函數(shù)對指令進(jìn)行模擬。
        5)中斷檢測與調(diào)度
        為了對中斷系統(tǒng)進(jìn)行模擬,本文定義了對應(yīng)于FIQ、IRQ的標(biāo)志變量,可以改變他們來模擬外部中斷輸入,每條指令模擬結(jié)束后,必須檢測上述兩個(gè)標(biāo)志,如果檢測到中斷發(fā)生,則調(diào)用相應(yīng)的異常進(jìn)入函數(shù),PC被設(shè)定為中斷服務(wù)程序入口地址。
        6)更新PC值
        如果本次循環(huán)沒有發(fā)生指令跳轉(zhuǎn)、加載PC及中斷,PC順序移向下一條指令。



        關(guān)鍵詞: X86 ARM 模擬器

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉