| 該部分大體講解一下Ax51宏匯編器,Lx51連接/定位器及其應(yīng)用。 什么是匯編器? 匯編器是一個(gè)軟件工具,作用是簡(jiǎn)化編寫(xiě)計(jì)算機(jī)程序的任務(wù)。它可以將符號(hào)代碼翻譯為可執(zhí)行的目標(biāo)代碼。該目標(biāo)代碼可以被編寫(xiě)進(jìn)微處理器中,并被執(zhí)行。匯編語(yǔ)言程序可直接被翻譯為CPU指令,控制處理器完成運(yùn)算。所以,要想有效地編寫(xiě)匯編程序,你應(yīng)該既熟悉微處理器的架構(gòu),又熟悉匯編語(yǔ)言。 匯編語(yǔ)言的操作代碼(助記符)很容易記憶(如MOV代表轉(zhuǎn)移指令,ADD代表加法指令,等等)。對(duì)于指令操作數(shù)中的地址和數(shù)值,我們也可以把它們符號(hào)化。當(dāng)我們?yōu)樗鼈兠麜r(shí),應(yīng)盡量使它們的名稱(chēng)像指令助記符一樣具有意義。例如,如果我們的程序必須處理一個(gè)日期數(shù)據(jù),我們可以把它命名為DATE。如果我們的程序包含一組指令,它們完成一個(gè)定時(shí)循環(huán)(一組指令被重復(fù)執(zhí)行,直到過(guò)去指定長(zhǎng)度的時(shí)間為止),那么我們可以把這一程序組命名為T(mén)IMER_LOOP。 一個(gè)匯編程序由三部分組成: 一條機(jī)器指令是一條機(jī)器代碼,它可以被機(jī)器執(zhí)行。關(guān)于機(jī)器指令的詳細(xì)論述,請(qǐng)參考8051或其派生微處理器的硬件手冊(cè)。附錄A提供了一個(gè)機(jī)器指令的總覽。 匯編器偽指令是用來(lái)定義程序結(jié)構(gòu)和符號(hào)的,并生成不可執(zhí)行的代碼(數(shù)據(jù)、信息,等)。參見(jiàn)“第4章 匯編器偽指令”對(duì)所有匯編器偽指令的詳細(xì)討論。 匯編器控制指令設(shè)定匯編模式,并控制匯編流向!暗7章 調(diào)用和控制指令”對(duì)所有的匯編器偽指令作了詳細(xì)論述。 模塊化編程 許多程序太長(zhǎng)或太復(fù)雜,很難寫(xiě)在單一單元中。如果把代碼分為較小的功能單元,將大大簡(jiǎn)化編程過(guò)程。模塊化程序一般比單塊程序容易編寫(xiě)、調(diào)試和修改。 模塊化編程方法類(lèi)似于包含大量電路的硬件設(shè)計(jì)。器件或程序在邏輯上被分為多個(gè)“黑箱子”,這些黑箱子都有指定的輸入和輸出。只要把各個(gè)單元之間的接口定義好,各個(gè)單元的詳細(xì)設(shè)計(jì)就可以獨(dú)立進(jìn)行了。 模塊化編程的優(yōu)點(diǎn)如下: 有效率的程序開(kāi)發(fā):使用模塊化方法可以更快地開(kāi)發(fā)程序,因?yàn)檩^小的子程序比大程序更容易理解、設(shè)計(jì)和測(cè)試。定義好模塊的輸入和輸出之后,程序員可以給模塊提供需要的輸入,通過(guò)檢測(cè)輸出來(lái)判斷模塊的正確性。然后由連接器把分立的模塊連接、定位,生成一個(gè)單一的絕對(duì)地址的可執(zhí)行的程序模塊。最后,測(cè)試整個(gè)模塊。 子程序可以重用:為一個(gè)程序編寫(xiě)的代碼經(jīng)?梢杂糜谄渌某绦。在模塊化編程中,可以把這些部分保存起來(lái),以備將來(lái)使用。因?yàn)榇a可以被重定位,所以保存的模塊可以連接到滿(mǎn)足其輸入和輸出要求的任意程序中。而在單塊程序編程中,這樣的部分深埋在整個(gè)程序中,不易被其它的程序使用。 便于調(diào)試和修改:模塊化程序一般比單塊程序易于調(diào)試。因?yàn)榫亩x了程序的模塊接口,很容易把問(wèn)題定位到特定的模塊。一旦找到了有問(wèn)題的模塊,更正問(wèn)題就相當(dāng)容易了。模塊化編程可以簡(jiǎn)化程序修改的工作。我們可以很有信心地把新的或調(diào)試過(guò)的模塊連接到一個(gè)已有的程序,而不用更改程序的其余部分。 下圖是為x51開(kāi)發(fā)程序的總體步驟。 
|