官术网_书友最值得收藏!

第一篇 PIC16Fxxxx編譯器(cc16e.exe)的設(shè)計

有必要說明,本篇所使用的“編譯器”一詞是狹義的概念,只涵蓋將源程序解析并轉(zhuǎn)換至目標(biāo)處理器匯編語言格式文件的過程和工具。而行業(yè)中所謂的“編譯器”通常是廣義的,是指將源程序轉(zhuǎn)換成最終目標(biāo)處理器能運行的二進制格式文件。因此,前者在概念上只是后者的一個子集。盡管如此,將C語言源程序解析并轉(zhuǎn)換至目標(biāo)處理器的過程是最關(guān)鍵、也是最艱難的操作。因為它不僅可以進行高、低級語言之間的轉(zhuǎn)譯,還可以從語言結(jié)構(gòu)上將二維概念的源程序轉(zhuǎn)換成單純的目標(biāo)處理器指令流。

本書選擇加強型PIC16Fxxxx(Enhanced PIC16 core)作為實戰(zhàn)對象,主要基于以下幾個原因。

(1)PIC16F 系列的8位微處理器在全球市場中擁有廣大的用戶。其加強型PIC16Fxxxx約于2009年問世,與基本型PIC16F系列相比,不僅系統(tǒng)結(jié)構(gòu)上有很高的兼容度,性能也有相應(yīng)的提高,并逐漸成為越來越多用戶的選擇。

(2)PIC16Fxxxx 不僅在性能上,而且在結(jié)構(gòu)上均介于PIC16F 系列和PIC18F系列之間。選擇PIC16Fxxxx作為實戰(zhàn)例子有一定的承前啟后的意義。

(3)與基本型PIC16F/PIC18F系列相比,PIC16Fxxxx結(jié)構(gòu)更顯得“規(guī)范”,這對于理解編譯器的設(shè)計會容易一點。

PIC16F/PIC16Fxxxx系列微處理器的結(jié)構(gòu)較為特殊,對于C語言的支持顯得很不友好,這無疑對C語言編譯器的設(shè)計帶來難度和障礙。這大概也是GNU C/C++編譯器至今未能被移植到這些產(chǎn)品系列編譯器上的主要原因。

本篇將詳細(xì)敘述編譯器具體設(shè)計過程。

主站蜘蛛池模板: 渑池县| 高阳县| 和平县| 肥西县| 白玉县| 阿巴嘎旗| 会同县| 贡嘎县| 台南县| 北票市| 额尔古纳市| 贵定县| 石阡县| 陇西县| 镇宁| 阿克陶县| 锡林郭勒盟| 祁门县| 聊城市| 连城县| 永春县| 江西省| 民乐县| 凤庆县| 东平县| 班戈县| 定结县| 宝兴县| 松阳县| 察隅县| 方正县| 蒲江县| 高尔夫| 沂水县| 浪卡子县| 阿城市| 滕州市| 丰原市| 海宁市| 蓬安县| 仲巴县|