新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > SI02匯編語言集成開發環境介紹

        SI02匯編語言集成開發環境介紹

        作者: 時間:2012-03-07 來源:網絡 收藏

        4.2 模擬執行程序(仿真程序)的實現

        本文引用地址:http://www.104case.com/article/165830.htm

          模擬執行程序(仿真程序)由C++語言編寫的軟件仿真的類來實現。該類被說明為匯編程序類的友員,以便訪問匯編程序類的數據成員。

          類中構造了一結構型變量來實現對硬件方面的仿真,并用一個成員函數來模擬指令執行的流程。該函數的參數是當前正運行的指令的PC值,返回將要運行的下條指令的PC值。

          通過對匯編程序類中產生的每條指令所在的行號、程序計數器(PC)的地址、指令的機器碼和字節數的分析,確定該指令是否改變了特殊功能寄存器、片內RAM、片外RAM以及程序計數器(PC) 的值。并根據分析的結果更新特殊功能寄存器和RAM的值。若該指令是跳轉指令,需根據跳轉條件判斷跳轉的地址,獲得跳轉到的行的PC值,作為函數的返回值。否則將源程序的PC值增加1。

          當然,該開發還支持單步執行、執行到斷點等程序調試方式,它們在實現方法上和連續執行基本一致,只是單步執行時每次只執行一條語句,然后等待用戶輸入新的命令才開始執行下條程序;執行到斷點的實現,只需在連續執行流程中增加一個是否執行到斷點了的判斷語句:如果不是斷點,則程序往下執行;如果是斷點則停止執行,等待用戶輸入新的命令。而新命令的輸入,則是通過編輯器界面上的調試菜單或鍵盤操作來實現。

          4.3 編輯器(界面)的實現

          界面設計的目的是為了提供良好的人機交互,集編輯、匯編、調試和通信于一體,便于使用。利用MFC的消息映像機制,通過鼠標和鍵盤事件來驅動相應程序的運行。面向程序設計語言的符號化調試技術的特點就是能夠支持在源程序的任何程序語句上設置斷點,并支持單步執行、連續執行、執行到斷點等多種程序執行方式。

          上述所有功能都要以交互的方式來完成,并且以調試時顯示合適的源代碼的行號的形式來達到這些目的。面向程序設計語言的符號調試,可以面向多種程序設計語言,我們做的這個開發環境主要面向的程序設計,因此我們所要開發的調試環境就是為這個使用編寫的程序提供調試服務。

          面向程序設計語言的符號化調試技術的實現需要從編譯或匯編連接系統中取得幫助,也就是說,編譯或匯編連接系統在進行嵌入式軟件的編譯(匯編)生成時,要盡可能多的保留程序源代碼的信息,即在所產生的目標代碼文件中保存目標代碼與源代碼之間聯系的信息。包括從源代碼到目標代碼的對應關系的信息、程序調試過程中出現的錯誤信息、以及源代碼中所用到的符號的定義的信息。調試環境通過對目標文件結構進行分析,從已存在的信息中建立以下幾種聯系的運行時調試信息表,從而為實現面向程序設計語言的符號化調試提供了基礎。

          (1)目標地址到源代碼的對應關系表;

          (2)系統常量與內存地址的對應關系表;

          (3)系統變量與內存地址的對應關系表;

          (4)運行代碼的標號與目標地址的對應關系表;

          (5)匯編或運行過程中出現的錯誤信息表

          其中,目標地址到源代碼的對應關系可以由匯編以后生成的List文件和Obj文件來表示;系統常量與內存地址的對應關系表可由系統常量表中所保存的地址信息來建立;系統變量與內存地址的對應關系可由系統變量表中的信息來建立。另外匯編或運行過程中如果出現錯誤,調試器應能夠到錯誤信息文件中進行查找并顯示相應的錯誤信息。

          建立這些聯系表,并不是在運行時直接提供調試所需要的信息,從這一角度來看,應用程序調試環境必須對下列現象進行處理:

          (1)程序運行的當前行顯示;

          (2)變量跟蹤與變量內容顯示;

          (3)斷點行顯示;

          (4)變量檢查及修改;

          (5)錯誤信息顯示。

          為解析上述現象,調試環境需要即時的取得模擬執行模塊的執行狀態,并取得各種寄存器的值、內存狀態以及模擬執行的方式,再通過對各種聯系表的處理來實現面向程序設計語言的調試。開發完成后的系統如圖5所示。

          

        IDE界面 www.elecfans.com

          5.結論

          IDE作為面向語言的環境,將方便用戶使用SI02語言進行各種開發工作。本文的創新點在于提高了軟件開發的速度、效率和質量,使該軟件成為軟件開發最重要的和必不可少的開發工具。但該開發環境在功能上仍有一些缺陷和不夠理想的地方。比如,對斷點位置的處理不如主流IDE方便和直觀,仍需進一步的改進和提高。

        c語言相關文章:c語言教程



        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 莎车县| 孝昌县| 滦平县| 高碑店市| 哈巴河县| 湖州市| 淮滨县| 黔西县| 电白县| 虞城县| 巴里| 齐齐哈尔市| 登封市| 连城县| 子洲县| 上饶市| 汕尾市| 清苑县| 清新县| 清水县| 盘山县| 台山市| 永胜县| 恭城| 台安县| 凉城县| 赣榆县| 博爱县| 闽清县| 济宁市| 伊川县| 淄博市| 长宁区| 锡林郭勒盟| 屯昌县| 芜湖县| 满城县| 龙川县| 梨树县| 韩城市| 安福县|