SI02匯編語言集成開發(fā)環(huán)境介紹
本文引用地址:http://www.ex-cimer.com/article/165830.htm
根據(jù)以上對系統(tǒng)功能的劃分以及各個模塊的功能,可以得出系統(tǒng)的詳細設(shè)計圖如圖3所示:程程序編輯器和模擬執(zhí)行功能模塊細分如圖4所示。通過點擊菜單條上的調(diào)試菜單項中除編譯外的二級菜單,可以激發(fā)軟件仿真類中相應的成員函數(shù),實現(xiàn)調(diào)試的功能。既可以采用連續(xù)執(zhí)行、跟蹤(StepInto細分圖單步運行且進入子程序)和步越(StepOver單步運行但不進入子程序)方式進行調(diào)試,也可以設(shè)置斷點并使程序運行至斷點處或運行至光標處進行調(diào)試。調(diào)試中可以打開特殊功能寄存器窗口、代碼窗口(顯示程序存儲器的內(nèi)容)和變量窗口,觀察指令運行對特殊功能寄存器的影響,并可通過變量窗口查看變量的值
3.3 SI02IDE接口說明
1)List文件:列表文件List.lst提供源文件與目標文件中各行指令的對應關(guān)系,其一行格式為:
[SL:源文件行號][TL:目標文件行號]源程序內(nèi)容
其中若源程序行沒有與之相對應的目標程序行存在(比如注釋),則與此源程序行對應的目標程序行號表示為[xxxxx]。
2)Obj文件:目標文件Obj.obj存儲將源程序匯編生成的中間代碼,其格式為三元式,描述一行如下:
L:行號,操作符,操作數(shù)1,操作數(shù)2;
其中,若兩個操作數(shù)之一或全部不存在,則相應位置表示為xxxxx。
3)錯誤信息文件:錯誤信息文件用來存儲程序匯編期間和模擬執(zhí)行時發(fā)現(xiàn)的錯誤信息,包括錯誤類型、錯誤位置等;它有匯編和模擬執(zhí)行程序?qū)懭?,由編輯模塊讀出。
4)數(shù)據(jù)信息文件:用來存儲程序執(zhí)行結(jié)束后,存儲器和寄存器里的數(shù)據(jù)信息。它由模擬執(zhí)行程序?qū)懭?,當用戶需要這些信息時,由編輯器模塊負責讀出顯示到界面相應的位置。
4.SI02IDE的實現(xiàn)
根據(jù)上節(jié)設(shè)計的系統(tǒng)功能可知,系統(tǒng)分別需要從以下三個方面實現(xiàn)。
4.1匯編程序的實現(xiàn)
匯編程序是將匯編語言轉(zhuǎn)換為機器代碼的軟件,該過程的源語言是SI02匯編語言,目標語言是面向SI02芯片的機器代碼。利用C++語言中類的封裝性,將匯編程序作為整個軟件中的一個類來處理。以確保數(shù)據(jù)成員的有效性,有效防止編程錯誤。該類的功能是將匯編源程序逐行讀入,并進行判斷、計算、分析,最后給出正確的機器碼。
這需要對匯編源程序進行兩次掃描,第一次掃描主要是對程序中所出現(xiàn)的變量以及標號建立檔案,檔案用于存放變量和標號的地址。第二次掃描主要是對整個源程序進行正確的譯碼,若源程序有錯,給出所有出錯信息,以便于檢查和修改;源程序若無錯誤則生成可執(zhí)行的目標代碼。
匯編程序類中分別用三個數(shù)組保存了每條指令的行號、程序計數(shù)器地址、和字節(jié)數(shù),以便在軟件仿真類中使用。匯編結(jié)束要生成error.txt,list.txt和obj.txt三個配置文件,他們存放有關(guān)源匯編語言程序的相關(guān)信息,以便在調(diào)試模塊中使用。
c語言相關(guān)文章:c語言教程
評論