匯編器在微處理器的驗證和應用中舉足輕重,如何設計通用的匯編器一直是研究的熱點之一。本文提出了一種開放式的匯編器系統設計思想,在匯編語言與機器語言間插入中間代碼CMDL(code mapping description language)語言,打破匯編語言與機器語言的直接映射關系,由此建立起一套描述匯編語言與機器語言的開放式映射體系。基于此開放式映射體系開發了一套匯編器系統,具有較高層次上的通用性和可移植性。【關鍵詞】指令集,CMDL,匯編器,開放式
Design of Retargetable Assembler System Liu Ling Feng Wen Nan Wang Ying Chun Jiang An Ping Ji Li Jiu IME of Peking University, 100871【摘要】An assembler plays a very important role in the field of microprocessor verifications and applications, thus how to build a retargetable assembler system has been a hotspot in this field for long time. This paper presents a new method about the retargetable assembler system design.It provides a kind of language CMDL, code mapping description language. During the process of assembling, assembler languages are firstly translated to CMDL, and then mapped to the machine codes. In an other word, CMDL is inserted between assembler languages and machine codes during the translation procedure. As a medium code, CMDL has a lot of features, such as high extraction, strong descript capabilities. It can describe almost all attributes of assembler languages. By breaking the direct mapping relationship between assembler languages and machine codes, the complexities of machine codes are hided to the users, therefore, the new retargetable assembler system has higher retargetable level by converting the mapping from assembler languages and machine codes to assembler languages and CMDL, and implementationof it becomes easier. Based on the new mapping system structure, a retargetable assemblersystem is developed. It proved the whole system has good retargetability and implantability.【關鍵詞】instruction set, symbol table, assembler, lexical analysis, retargetability
標簽:
開放式
匯編器
上傳時間:
2013-10-10
上傳用戶:meiguiweishi
這個例子如果運行,將在仿真的PC窗口中的第1,2,3行顯示一些信息后,在隨機位置顯示 1 ~ 5 .由于keil c51默認不支持重入函數,它的重入函數使用仿真的重入棧而不使用系統棧,而Small RTOS 51沒有進行重入棧管理,所以在TaskA~TaskE雖然及其相似,但不能合并.
注意:(1)在KEIL C51 工程中,我已經把輸出文件目錄設在e:\temp中,您可以在Project->Options for Target "Target 1"的output頁點擊Select Folder for Objects...和Listing頁點擊Select Folder for Listing...改變.
(2)編譯時會有5個警告,其中一個是因為沒有使用一個系統函數OSSendSignal引起,它可以忽略.另4個是禁止任務間變量覆蓋分析引起,必須忽略.感謝網友John X. Liu,在這個例子中我使用了他編寫的仿真(dllPc51Emu.dll),這個dll原來是為他移植的Ucos-ii for keil c51的例子編寫.
(3)Pc51Emu.dll在KEIL C51 V6.23 V7.00工作不正常.
標簽:
Small
keil
c51
仿真
上傳時間:
2015-05-29
上傳用戶:無聊來刷下