




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)7.1C語(yǔ)言與MCS-517.2C51數(shù)據(jù)類型及在MCS-51中的存儲(chǔ)方式
7.3C51數(shù)據(jù)的存儲(chǔ)類型與MCS-51存儲(chǔ)結(jié)構(gòu)7.4MCS-51特殊功能寄存器(SFR)的C51定義7.5MCS-51并行接口的C51定義7.6位變量的C51定義7.7C51構(gòu)造數(shù)據(jù)類型
7.8模塊化程序開發(fā)過(guò)程7.9MCS-51內(nèi)部資源使用的C語(yǔ)言編程7.10MCS-51片外擴(kuò)展的C語(yǔ)言編程7.11頻率量測(cè)量的C語(yǔ)言編程7.12MCS-51機(jī)間通信的C語(yǔ)言編程7.13鍵盤和數(shù)碼顯示人機(jī)交互的C語(yǔ)言編程7.1C語(yǔ)言與MCS–51用匯編程序設(shè)計(jì)MCS–51系列單片機(jī)應(yīng)用程序時(shí),必須要考慮其存儲(chǔ)器結(jié)構(gòu),尤其必須考慮其片內(nèi)數(shù)據(jù)存儲(chǔ)器與特殊功能寄存器正確、合理的使用以及按實(shí)際地址處理端口數(shù)據(jù)。用C語(yǔ)言編寫MCS–51單片機(jī)的應(yīng)用程序,雖然不像用匯編語(yǔ)言那樣具體地組織、分配存儲(chǔ)器資源和處理端口數(shù)據(jù),但在C語(yǔ)言編程中,對(duì)數(shù)據(jù)類型與變量的定義,必須要與單片機(jī)的存儲(chǔ)結(jié)構(gòu)相關(guān)聯(lián),否則編譯器不能正確地映射定位。用C語(yǔ)言編寫單片機(jī)應(yīng)用程序與編寫標(biāo)準(zhǔn)的C語(yǔ)言程序的不同之處就在于根據(jù)單片機(jī)存儲(chǔ)結(jié)構(gòu)及內(nèi)部資源定義相應(yīng)的C語(yǔ)言中的數(shù)據(jù)類型和變量,其它的語(yǔ)法規(guī)定、程序結(jié)構(gòu)及程序設(shè)計(jì)方法都與標(biāo)準(zhǔn)的C語(yǔ)言程序設(shè)計(jì)相同。用C語(yǔ)言編寫的應(yīng)用程序必須經(jīng)單片機(jī)的C語(yǔ)言編譯器(簡(jiǎn)稱C51),轉(zhuǎn)換生成單片機(jī)可執(zhí)行的代碼程序。支持MCS–51系列單片機(jī)的C語(yǔ)言編譯器有很多種。如AmericanAutomation、Auocet、BSO/TASKING、DUNFIELDSHAREWARE、KEIL/Franklin等。其中KEIL/Franklin以它的代碼緊湊和使用方便等特點(diǎn)優(yōu)于其它編譯器。本章是針對(duì)這種編譯器介紹MCS–51單片機(jī)C語(yǔ)言程序設(shè)計(jì)。7.2C51數(shù)據(jù)類型及在MCS-51中的存儲(chǔ)方式7.2.1C51的數(shù)據(jù)類型FranklinC51編譯器具體支持的數(shù)據(jù)類型有:位型(bit)、無(wú)符號(hào)字符(unsignedchar)、有符號(hào)字符(singedchar)、無(wú)符號(hào)整型(unsignedint)、有符號(hào)整型(signedint)、無(wú)符號(hào)長(zhǎng)整型(unsignedlong)、有符號(hào)長(zhǎng)整型(signedlong)、浮點(diǎn)型(float)和指針類型等。表7.1FranklinC51的數(shù)據(jù)類型數(shù)據(jù)類型長(zhǎng)度(bit)長(zhǎng)度(byte)值域bit110,1unsignedchar810~255signedchar81–128~127unsignedint1620~65535signedint162–32768~32767unsignedlong3240~4294967295signedlong324–2147483648~2147483647float324±1.176E–38~±3.40E+38(6位數(shù)字)double648±1.176E–38~±3.40E+38(10位數(shù)字)一般指針243存儲(chǔ)空間0~655357.2.2C51數(shù)據(jù)在MCS-51中的存儲(chǔ)方式位變量(bit):與MCS-51硬件特性操作有關(guān)的可以定義成位變量。位變量必須定位在MCS-51單片機(jī)片內(nèi)RAM的位尋址空間中。字符變量(char):字符變量的長(zhǎng)度為1byte即8位。這很合適MCS-51單片機(jī),因?yàn)镸CS-51單片機(jī)每次可處理8位數(shù)據(jù)。對(duì)于無(wú)符號(hào)變量(unsignedchar)的值域范圍是0~255。對(duì)于有符號(hào)字符變量(signedchar),最具有重要意義的位是最高位上的符號(hào)標(biāo)志位(msb)。此位為1代表"負(fù)",為0代表"正"。有符號(hào)字符變量和無(wú)符號(hào)字符變量在表示0~127的數(shù)值時(shí),其含義是一樣的,都是0~0x7F。負(fù)數(shù)一般用補(bǔ)碼表示,即用11111111表示-1,用11111110表示-2……。當(dāng)進(jìn)行乘除法運(yùn)算時(shí),符號(hào)問(wèn)題就變得十分復(fù)雜,而C51編譯器會(huì)自動(dòng)地將相應(yīng)的庫(kù)函數(shù)調(diào)入程序中來(lái)解決這個(gè)問(wèn)題。整型變量(int):整型變量的長(zhǎng)度為16位。與8080和8086CPU系列不同,MCS-51系列單片機(jī)將int型變量的高位字節(jié)數(shù)存放在低地址字節(jié)中,低位字節(jié)數(shù)存放在高地址字節(jié)中。有符號(hào)整型變量(signedint)也使用msb位作符號(hào)標(biāo)志位,并使用二進(jìn)制補(bǔ)碼表示數(shù)值??芍苯邮褂脦追N專用的機(jī)器指令來(lái)完成多字節(jié)的加、減、乘、除運(yùn)算。整型變量值0x1234以圖7.1所示的方式存放在內(nèi)存中。圖7.1整型數(shù)的存儲(chǔ)結(jié)構(gòu)…0x120x34…+0+1地址0x120x340x560x78….+0+1+2+3地址圖7.2長(zhǎng)整型變量的存儲(chǔ)結(jié)構(gòu)浮點(diǎn)型變量(float):浮點(diǎn)型變量為32位,占4個(gè)字節(jié),許多復(fù)雜的數(shù)學(xué)表達(dá)式都采用浮點(diǎn)變量數(shù)據(jù)類型。應(yīng)用符號(hào)位表示數(shù)的符號(hào),用階碼和尾數(shù)表示數(shù)的大小。用它們進(jìn)行任何數(shù)學(xué)運(yùn)算都需要使用由編譯器決定的各種不同效率等級(jí)的庫(kù)函數(shù)。FranklinC51的浮點(diǎn)變量數(shù)據(jù)類型的使用格式與IEEE-754標(biāo)準(zhǔn)有關(guān),具有24位精度,尾數(shù)的高位始終為"1",因而不保存,位的分布如下:●1位符號(hào)位。●8位指數(shù)位?!?3位尾數(shù)。符號(hào)位是最高位,尾數(shù)為低23位,內(nèi)存中按字節(jié)存儲(chǔ)順序如下:地址+0+1+2+3內(nèi)容MMMMMMMMMMMMMMMMEMMMMMMMSEEEEEEE其中,S為符號(hào)位,1表示負(fù),0表示正;E為階碼;M為23位尾數(shù),最高位為"1"。浮點(diǎn)變量值-12.5的十進(jìn)制為:0xC1480000,它按圖7.3所示方式存于內(nèi)存中。0x000x000x480xC1….+0+1+2+3地址圖7.3浮點(diǎn)數(shù)的存儲(chǔ)結(jié)構(gòu)在編程時(shí),如果只強(qiáng)調(diào)運(yùn)算速度而不進(jìn)行負(fù)數(shù)運(yùn)算時(shí),最好采用無(wú)符號(hào)(unsigned)格式。無(wú)符號(hào)字符類型的使用:無(wú)論何時(shí),應(yīng)盡可能使用無(wú)符號(hào)字符變量,因?yàn)樗苤苯颖籑CS-51所接受?;谕瑯拥脑颍矐?yīng)盡量使用位變量。有符號(hào)字符變量雖然也只占用一個(gè)字節(jié),但需要進(jìn)行額外的操作來(lái)進(jìn)行測(cè)試代碼的符號(hào)位。這無(wú)疑會(huì)降低代碼效率。使用簡(jiǎn)化形式定義數(shù)據(jù)類型。其方法是在源程序開頭使用#define語(yǔ)句自定義簡(jiǎn)化的類型標(biāo)識(shí)符。例如:#defineucharunsignedchar#defineuintunsignedint這樣,在編程中,就可以用uchar代替unsignedchar,用uint代替unsignedint來(lái)定義變量。7.3C51數(shù)據(jù)的存儲(chǔ)類型與MCS-51存儲(chǔ)結(jié)構(gòu)表7.2C51存儲(chǔ)類型與MCS-51存儲(chǔ)空間的對(duì)應(yīng)關(guān)系存儲(chǔ)類型與存儲(chǔ)空間的對(duì)應(yīng)關(guān)系data直接尋址片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū),訪問(wèn)速度快(128字節(jié))bdata可位尋址片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū),允許位與字節(jié)混合訪問(wèn)(16字節(jié))idata間接尋址片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū),可訪問(wèn)片內(nèi)全部RAM地址空間(256字節(jié))pdata分頁(yè)尋址片外數(shù)據(jù)存儲(chǔ)區(qū)(256字節(jié))由MOV@Ri訪問(wèn)(i=0,1)xdata片外數(shù)據(jù)存儲(chǔ)區(qū)(64KB)由MOVX@DPTR訪問(wèn)code程序存儲(chǔ)器64KB空間,由MOVC@DPTR訪問(wèn)表7.3C51存儲(chǔ)類型及其數(shù)據(jù)長(zhǎng)度和值域存儲(chǔ)類型長(zhǎng)度(bit)長(zhǎng)度(byte)值域范圍data810~255idata810~255pdata810~255xdata1620~65535code1620~65535帶存儲(chǔ)類型的變量的定義的一般格式為數(shù)據(jù)類型存儲(chǔ)類型變量名帶存儲(chǔ)類型的變量定義舉例:chardatavar1;bitbdataflags;floatidatax,y,z;unsignedintpdatavar2;unsignedcharvector[3][4];表7.4存儲(chǔ)模式說(shuō)明存儲(chǔ)模式說(shuō)明SMALL默認(rèn)的存儲(chǔ)類型是data,參數(shù)及局部變量放入可直接尋址片內(nèi)RAM的用戶區(qū)中(最大128字節(jié))。另外所有對(duì)象(包括堆棧),都必須嵌入片內(nèi)RAM。棧長(zhǎng)很關(guān)鍵,因?yàn)閷?shí)際棧長(zhǎng)依賴于函數(shù)嵌套調(diào)用層數(shù)COMPACT默認(rèn)的存儲(chǔ)類型是pdata,參數(shù)及局部變量放入分頁(yè)的外部數(shù)據(jù)存儲(chǔ)區(qū),通過(guò)@R0或@R1間接訪問(wèn),棧空間位于片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū)中LARGE默認(rèn)的存儲(chǔ)類型是xdata,參數(shù)及局部變量直接放入片外數(shù)據(jù)存儲(chǔ)區(qū),使用數(shù)據(jù)指針DPTR來(lái)進(jìn)行尋址。用此數(shù)據(jù)指針進(jìn)行訪問(wèn)效率較低,尤其對(duì)兩個(gè)或多個(gè)字節(jié)的變量,這種數(shù)據(jù)類型的訪問(wèn)機(jī)制直接影響代碼的長(zhǎng)度7.4MCS-51特殊功能寄存器(SFR)的C51定義MCS-51單片機(jī)中,除了程序計(jì)數(shù)器PC和4組工作寄存器組外,其它所有的寄存器均為特殊功能寄存器(SFR),分散在片內(nèi)RAM區(qū)的高128字節(jié)中,地址范圍為80H~0FFH。SFR中有11個(gè)寄存器具有位尋址能力,它們的字節(jié)地址都能被8整除,即字節(jié)地址是以8或0為尾數(shù)的。為了能直接訪問(wèn)這些SFR,F(xiàn)ranklinC51提供了一種自主形式的定義方法,這種定義方法與標(biāo)準(zhǔn)C語(yǔ)言不兼容,只適用于對(duì)MCS-51系列單片機(jī)進(jìn)行C語(yǔ)言編程。特殊功能寄存器C51定義的一般語(yǔ)法格式如下: sfrsfr-name=intconstant;"sfr"是定義語(yǔ)句的關(guān)鍵字,其后必須跟一個(gè)MSC-51單片機(jī)真實(shí)存在的特殊功能寄存器名,"="后面必須是一個(gè)整型常數(shù),不允許帶有運(yùn)算符的表達(dá)式,是特殊功能寄存器"sfr-name"的字節(jié)地址,這個(gè)常數(shù)值的范圍必須在SFR地址范圍內(nèi),位于0x80~0xFF。例如:sfrSCON=0x98; /*串口控制寄存器地址98H*/sfrTMOD=0x89; /*定時(shí)器/計(jì)數(shù)器方式控制寄存器地址89H*/MC泛S-尼51蜂系列問(wèn)單片我機(jī)的舍特殊處功能由寄存斗器的專數(shù)量削與類斑型不護(hù)盡相元同,增因此戴建議妻將所使有特助殊的蠅"s盟fr逃"定呈義放賺入一也個(gè)頭爭(zhēng)文件哄中,風(fēng)該文享件應(yīng)井包括容MC徐S-恨51航單片待機(jī)系走列機(jī)冒型中已的S揪FR邊定義嗚。C膛51爛編譯宿器的編"r閉eg炕51相.h英"頭寄文件善就是偏這樣胡一個(gè)丹文件著。在新該的M娘CS盜-5累1系噴列產(chǎn)狗品中鞭,S雖FR嫁在功顆能上哄經(jīng)常腦組合罵為1用6位本值,嗓當(dāng)S僵FR目的高鞏字節(jié)盲地址萌直接焦位于謙低字皮節(jié)之訂后時(shí)榨,對(duì)僵16疲位S帝FR乳的值責(zé)可以督直接杠進(jìn)行消訪問(wèn)餐。例若如5投2子處系列貞的定紀(jì)時(shí)器吼/計(jì)王數(shù)器走2就炊是這粱種情好況。垃為了沒(méi)有效毯地訪巷問(wèn)這態(tài)類S稀FR遠(yuǎn),可燒使用年關(guān)鍵晃字"善sf息r1浮6"遣來(lái)定姓義,賢其定踩義語(yǔ)叛句的鈴語(yǔ)法暈格式鄭與8裝位S扣FR蓋相同家,只酬是"漆="榜后面因的地誼址必圓須用拴16壇位S鼓FR顧的低通字節(jié)痛地址右,即氣低字侵節(jié)地宰址作晉為"皇sf偵r1俗6"斃的定拴義地住址。例如猾:sf運(yùn)r1踐6步T蒸2文=盛0x富CC凍/*促定時(shí)止器/所計(jì)數(shù)拴器2幟:T聯(lián)2低箱8位誰(shuí)地址伸為0乒CC溫H,介T2承高8月位地棗址為摔0C偽DH古*/這種衰定義廟適用栗于所副有新母的1樣6位愿SF木R,孝但不道能用尋于定扣時(shí)器賊/計(jì)撥數(shù)器陽(yáng)0和對(duì)1。對(duì)于捆位尋貸址的放SF枕R中敘的位創(chuàng),C紅51浩的擴(kuò)今充功紗能支搖持特還殊位肆的定殖義,當(dāng)像S漸FR擾一樣繁不與胳標(biāo)準(zhǔn)伯C兼茂容,駝使用鮮"s者bi猾t"甘來(lái)定抱義位呀尋址購(gòu)單元揪。第一因種格科式:雜s椅bi玩t達(dá)b飾it毀-n醋am袖e檢=碗sf普r-努na況me疼^i年nt城c怎on始st指an細(xì)t;"s縱bi續(xù)t"籠是定拖義語(yǔ)旅句的子關(guān)鍵窗字,懂后跟清一個(gè)透尋址爹位符猜號(hào)名柱(該淚位符扁號(hào)名餃必須推是M絹CS駛-5為1單揭片機(jī)而中規(guī)論定的傍位名續(xù)稱)嶄,"婦="藥后的餃"s癥fr脊-n饞am悅e"渡必須年是已姜定義占過(guò)的島SF擔(dān)R的睜名字冠,"慚^"孩后的癥整常戴數(shù)是捷尋址典位在仰特殊是功能軌寄存擇器"踢sf甘r-把na腦me莊"中起的位數(shù)號(hào),壘必須饅是0箏~7脅范圍枯中的討數(shù)。邀例如遺:sf視r(shí)偏PS較W=舍0x歉D0幼;否/鎖*永定義悼PS赤W寄遞存器凱地址早為D膨0H拖*愛(ài)/sb唉it獨(dú)OV貼=P爛SW盆^2拜;靈/俊*吃定義麗OV爺位為咸PS聚W.羅2,唱地址需為D筐2H眼*芬/sb晝it奶CY衡=P表SW玻^7桿;頂/*鄰定腳義C梯Y位來(lái)為P舍SW霞.7弦,地跑址為攪D7躲H旗*/第二走種格歌式:處sb楚it供bi游t-桿na羨me滲=頑i譜nt欺c車on匆st漿an姜t^夾in醉t挽co烏ns劫ta擦nt名;"=克"后渠的i講nt巷c輪on傻st休an僵t為路尋址膀地址敗位所扛在的箏特殊仔功能慣寄存模器的箏字節(jié)久地址位,"戀^"仍符號(hào)述后的管in柜t喉co陸ns汁ta謠nt攜為尋愚址位叫在特朽殊功屯能寄堂存器期中的軌位號(hào)視。例督如:sb客it歉OV毛=0豆XD辭0^拆2絞;報(bào)/費(fèi)*疲定義播OV奴位地替址是覽D0薪H字炕節(jié)暫中的垮第2蓄位較*/sb嫁it鉗CY纏=0脈XD會(huì)0^欄7房誠(chéng);格/詳*翅定義絡(luò)CY絲式位地渣址是傻D0濱H字觀節(jié)中小的堪第7柄位全*/第三壤種格肅式:熊sb轉(zhuǎn)it衡bi哈t-怒na械me濫=寨i胖nt縮慧c舌on組st蘆an浴t;"=妻"后拿的i秒nt剝c謹(jǐn)on湊st燦an炒t為戀尋址裝位的母絕對(duì)窩位地佳址。冬例如拆:sb誦it陵OV者=0糟XD驢2飲;銀/紙*級(jí)定義游OV顆位地戀址為細(xì)D2膚H匪*/sb飯it殲CY震=0烘XD春7洽;車/掛*原定義晃CY眉位地時(shí)址為闖D7軌H階*/特殊沸功能慢位代聞表了墾一個(gè)滅獨(dú)立克的定畫義類他,不胸能與呆其它戴位定嘩義和許位域列互換幻玉。7.張5悶M盼CS送-5鞋1并炕行接密口的送C5狗1定百義MC肌S-戴51返系列姥單片更機(jī)并鞏行I獸/O閘接口填除了籌芯片粉上的蚊4個(gè)呼I/逢O口聚(P拼0寨~珍P3記)外蘇,還質(zhì)可以腐在片融外擴(kuò)固展I店/O揉口。匆MC臂S-吊51釣單片承機(jī)I雄/O蛇口與視數(shù)據(jù)坊存儲(chǔ)嗎器統(tǒng)訂一編蹄址,公即把師一個(gè)面I/努O口亦當(dāng)作投數(shù)據(jù)猾存儲(chǔ)辱器中羨的一捆個(gè)單欣元來(lái)嗓看待拋。使用何C5佩1進(jìn)昆行編餃程時(shí)追,M邪CS螺-5雨1片再內(nèi)的捕I/霸O(shè)口告與片姓外擴(kuò)膠展的呆I/年O可蛙以統(tǒng)肆一在為一個(gè)叉頭文去件中躁定義絕,也必可以認(rèn)在程幟序中下(一惹般在廉開始膠的位悼置)裕進(jìn)行尤定義敘,其跟定義援方法要如下滅:對(duì)于扒MC粥S-服51令片內(nèi)借I/靠O口批按特筍殊功啞能寄挎存器擺方法溪定義權(quán)。例檔如:sf痛r列P0獨(dú)=0品x8尼0堪;什/務(wù)*牌定義呈P0挨口,碰地址夕為8傍0H喊*隨/sf哥r暖P1遞=0滅x9懂0廳;黃/紐奉*遭定義佛P1赤口,協(xié)地址雕為9列0H姐*波/對(duì)于也片外作擴(kuò)展瞧I/早O口雪,則亂根據(jù)珍硬件姻譯碼繼地址幻玉,將番其視派作為歇片外搭數(shù)據(jù)被存儲(chǔ)驅(qū)器的趁一個(gè)撥單元析,使根用#攝de唉fi陜ne賠語(yǔ)句領(lǐng)進(jìn)行池定義亞。例無(wú)如#i掃nc賀lu妻de布<口ab脖sa匹cc棄.h瞞>#d抵ef灑in崗e唇PO翁RT掠A槍XB怨YT刻E假[0門xF政FC秒0]ab慚sa堂cc覆.h寨是C傻51燙中絕浪對(duì)地偵址訪府問(wèn)函犬?dāng)?shù)的夸頭文守件,惕將P奏OR將TA愛(ài)定義伸為外挑部I霜/O貧口,繡地址匠為血F慣FC浴0H使,長(zhǎng)際度為馬8位塌。一旦決在頭壘文件漢或程醫(yī)序中肯對(duì)這竿些片喘外I犬/O油口進(jìn)存行定汁義后勿,在碌程序銹中就雀可以幣自由熄使用胖變量愚名與扔其實(shí)搶際地突址的傭聯(lián)系鑒,以年便使健程序駛員能就用軟您件模慘擬M他CS秀-5善1的婚硬件乳操作仇。(1得)莊位變芒量C雜51黃定義攔。使云用C橫51漸編程添時(shí),剖定義柴了位滿變量確后,衫就可敵以用熟定義趙了的辱變量顛來(lái)表納示M判CS臂-5姓1的抱位尋親址單纏元。位變尤量的塊C5屬1定啞義的佩一般某語(yǔ)法俱格式駛?cè)缦鹿何活惓有蜆?biāo)哈識(shí)符準(zhǔn)(b閉it訓(xùn))忌位笛變量澇名;例如族:bi謙t疊d靠ir畏ec貫ti橫on往_b塊it畏;饅/腿*極把d班ir憂ec熄ti各on顆_b稠it撲定義俗為位培變量茫*費(fèi)/bi變t固l夏oo盡k_述po素in銜te項(xiàng)r爹;丙/*浴把晃lo何ok賓_p晃oi國(guó)nt池er哲定義閉為位斑變量邊*獸/7.清6帆位濤變量食的C扔51虛定義(2寄)辨函數(shù)家可包報(bào)含類茅型為附"b噸it叢"的六參數(shù)梳,也羽可以犁將其柿作為命返回意值。桐例如顯:bi樂(lè)t攏f謝un嶼c(潛bi賠t賺b0雪,璃bi殼t擱b1袖)仁/逐*賓變量麥b0負(fù),b欄1作笑為函屯數(shù)的天參數(shù)備*腳/{re當(dāng)tu罪rn面(米b1籃);夜/自*趙變量講b1溫作為角函數(shù)沃的返玩回值敬*迫/}注意盟,使乳用(鵝#p鴿ra允gm敗a炕di汪sa制bl核e)淹或包打含明敏確的版寄存祥器組砍切換宜(u稍si遷ng詢n默)的仆函數(shù)屈不能抖返回智位值呀,否祖則編冷輯器裝將會(huì)薪給出猾一個(gè)駁錯(cuò)誤音信息碰?!?3枝)退對(duì)位中變量由定義細(xì)的限幸制。葛位變校量不鞋能定牧義成幻玉一個(gè)換指針鏈,如范不能投定義限:b概it壘*習(xí)bi沫t_善po配in介te征r。綿不存匯在位灰數(shù)組碰,如謙不能顧定義球:b陽(yáng)it既b_壯a(bǔ)r立ra顫y[答]僑。在位紫定義霉中,訊允許建定義暢存儲(chǔ)怎類型件,位戶變量庭都被瓦放入少一個(gè)嘆位段叮,此睡段總炸位于點(diǎn)MC該S-騰51啊片內(nèi)豪的R碗AM多區(qū)中拼。因糖此,悼存儲(chǔ)破類型開限制陵為d勻at飲a和劉id督at掛a,考如果廉將位璃變量歌的存壞儲(chǔ)類暖型定麻義成茶其它幫存儲(chǔ)那類型綿都將姐編譯歌出錯(cuò)右。例1先定簡(jiǎn)義變膏量的疾數(shù)據(jù)猴類型都和存溉儲(chǔ)類噸型:bd巨at裁a沉in駱t油ib散as斧e;干/*抓定暴義i霧ba閉se奧為b癥da換ta扮整型常變量榆*約/bd未at效a突ch僻ar反ba單ry奧[4撥];域/*家b慚ar鑒y[泉4]屢定義嬸為b獅da樹ta續(xù)字符璃型數(shù)稍組傻*/然后目可使縮慧用"根sb修it中"定幼義可造獨(dú)立渾尋址飛訪問(wèn)雖的對(duì)個(gè)象位淺:sb手it訪my鹿bi睜t0元=港i榆ba述se每^0存;帥/宣*婦my違bi大t0背定義釋為i昌ba柏se頃的第排0位伯*背/sb惹it悉my蟲bi舍t(yī)1毯5溪=跨ib擴(kuò)as淋e^賭15叼;扮/*顯m總yb鋤it達(dá)0定播義為郊ib驢as終e的欄第1緩5位繁*現(xiàn)/sb善it散Ar推y0樓7己=游ba駛ry銳[0考]^村7剪;艙/*構(gòu)A撞ry蕩07聽定義古為a享br忠y[州0]青的第鞏7位冬*蝕/sb創(chuàng)it那Ar哄y3奇7供=悼ba愚r(nóng)y先[3墾]^燭7恩;礎(chǔ)/*痕A椒ry勒37使定義印為a蔬br革y[勻3]腔的第競(jìng)7位貌*絡(luò)/對(duì)象璃ib梢as出e和徑ba凍ry核也可測(cè)以字衫節(jié)尋窮址:ar饅y3政7=槍0;覆/州*搭ba愿ry效[3報(bào)]的慣第7康位賦需值為派0雁*/ba鞋ry狡[3銜]=橋'a閉';橫/*析字黨節(jié)尋鮮址,雜ba潔ry血[3冊(cè)]兄賦值魯為'訂a'污*禮/sb位it腦定義抓要位們尋址搖對(duì)象茶所在火字節(jié)壺基址盯對(duì)象伸的存繩儲(chǔ)類昨型為血"b代da肝ta犬",侮否則攪只有料絕對(duì)晶的特礦殊位輕定義艘(s假bi摩t)圖是合抹法的遵。"功^"牧操作涂符后武的最孔大值鑼依賴?yán)钣谥感炼ǖ耐砘愐盒?,毅?duì)于港ch頂ar造/u查ch睛ar黨而言念是0類~7蔥,對(duì)碌于i膜nt雹/u妥in芬t而充言是柜0~最15袖,對(duì)復(fù)于l掃on適g/灰ul叫on狡g而鄙言是罷0~革31宜。7.翠7浙C仆51窩構(gòu)造史數(shù)據(jù)釋類型1.顛基于呼存儲(chǔ)滲器的劑指針基于分存儲(chǔ)膽器的也指針贏以存塞儲(chǔ)器坑類型揉為參池量,污它在兄編譯訓(xùn)時(shí)才銅被確扎定。脅因此噴,為質(zhì)指針略選擇薯存儲(chǔ)窮器的窮方法拼可以乓省掉替,以奶便這峽些指跟針的戒長(zhǎng)度隨為一主個(gè)字擊節(jié)(偷id竟at負(fù)a還*,嫩da射ta辛*畏,p扔da畢ta餐*壇)或蓋2個(gè)嘴字節(jié)罪(c為od釋e犧*,段xd紙at浪a集*)趴。編仇譯時(shí)焦,這躲類操斷作一謹(jǐn)般被須"行犬內(nèi)"亡(i女nl嘆in老e)凱編碼季,而舉無(wú)需棚進(jìn)行墊庫(kù)調(diào)多用?;诨即鎯?chǔ)歡器的裝指針福定義帆舉例炒:ch鞠ar稅xd停at臉a昨*肌px霸;在x史da魯ta旗存儲(chǔ)涼器中月定義圖了一灘個(gè)指份向字淘符型著(c召ha鴿r)昏的指寫針變劉量p陶x。杏指針禮自身至在默德認(rèn)存扇儲(chǔ)區(qū)盼(決輝定于亂編譯糕模式戲),池長(zhǎng)度棍為2竟個(gè)字高節(jié)(歐值為鈴0~苦0x滿FF疼FF溜)。ch乞ar厲xd彼at屋a唐*單da疾ta澇pd尤x;除了逢明確椅定義怕指針賴位于尼MC龜S-宜51朵內(nèi)部公存儲(chǔ)父區(qū)(給da窯ta匯)外屠,其憤它與垮上例泄相同應(yīng),它濕與編勻譯模螺式無(wú)狂關(guān)。da俗ta圍ch岸ar處xd舍at膀a符*軋pd坐x;st擔(dān)ru蛋ct啦ti木me{披c褲ha運(yùn)r筑h尖ou掠r哄;ch聯(lián)ar右mi個(gè)n;ch沖ar石se更c(diǎn);st獻(xiàn)ru斥ct彎t會(huì)im織e斷x存da莫ta刪*蒜px陳ti嫁me曉;}在結(jié)袍構(gòu)s腹tr瞇uc秀t億ti宅me辱中,勇除了喜其它沾結(jié)構(gòu)僵成員洲外,傍還包陵含有完一個(gè)鎮(zhèn)具有掃和s器tr沉uc桶t姥ti挽me內(nèi)相同甩的指扣針p睜xt精im叢e,熔ti管me充位于懼外部販數(shù)據(jù)姻存儲(chǔ)色器(鞠xd塔at幟a)帆,指半針p鞠xt婆im影e具皆有兩憲個(gè)字宮節(jié)長(zhǎng)押度。st斬ru脊ct女t時(shí)im刃e除id忠at是a沉*p引ti盈me榨;這個(gè)炎聲明乎定義削了一存?zhèn)€位督于默總認(rèn)存誦儲(chǔ)器比中的秧指針愉,它包指向剝結(jié)構(gòu)穩(wěn)ti疫me駐,t傾im隸e位臣于i窄da君ta衣存儲(chǔ)漢器中雜,結(jié)暈構(gòu)成炭員可伶以通捷過(guò)M抬CS掩-5膝1的稼@R港0或轉(zhuǎn)@R樣1籮進(jìn)行篇間接仆訪問(wèn)繞,指呈針p劃ti養(yǎng)me裕為1蛙個(gè)字槍節(jié)長(zhǎng)精。pt剝im恨e→梨px劫ti抵me嘩→h塊ou駁r升=夾12箏;使用窩上面豈的關(guān)的于s警tr號(hào)uc牲t離ti抄me尖和s悟tr藥uc李t即id借at狼a霉*p顏ti錘me把的定驢義,候指針?biāo)?p脹xt奮im能e"澇被從鋤結(jié)構(gòu)你中間痰接調(diào)東用,刪它指勾向位鋤于x袍da蹄ta屢存儲(chǔ)唯器中壞的t趣im蔽e結(jié)事構(gòu)。覽結(jié)構(gòu)桃成員記ho害ur續(xù)被賦栗值為完12范。2.欲一般趣指針一般肢指針渾包括篩3個(gè)清字節(jié)常:1珠個(gè)字楚節(jié)存詢儲(chǔ)類占型和凡2個(gè)工字節(jié)朗偏移姨地址始,即地址+0+1+2內(nèi)容存儲(chǔ)器類型偏移地址高位字節(jié)偏移地址低位字節(jié)其中慎,第窩一字諸節(jié)代儲(chǔ)表了銅指針煙的存旗儲(chǔ)器梯類型勞,存敲儲(chǔ)器遭類型腔編碼傭如下初:存儲(chǔ)器類型idataxdatapdatadatacode值12345例如存,以鳴xd涼at小a類錄型的散0x容12性34讀地址躲為指煮針可揮以表客示如鈴下:地址+0+1+2內(nèi)容0x020x120x34當(dāng)用逗常數(shù)凍作指墨針時(shí)擠,必奧須注距意正彼確定辰義存烏儲(chǔ)器進(jìn)類型懂和偏挨移量葡。例如眾,將戒常數(shù)懷值0敵x4率1寫打入地淺址為肥0x望80掩00廁的外檔部數(shù)星據(jù)存欺儲(chǔ)器炮。#d墊ef放in背e當(dāng)X傲BY聚TE形(畝(哭ch摸ar齡*致)物0x僑20格00窩0L燒)XB升YT檔E[忠0x避80搶00膏]資=譯0x埋41壁;其中縱,X廊BY畫TE撥被定雹義為性(c襖ha份r挺*)偶0x徹20稼00宜0L瀉,0愚x2需00報(bào)00遭L為典一般箱指針勢(shì),其挨存儲(chǔ)漠類型嘉為2觸,偏攻移量全為0捕00喚0H域,這村樣X(jué)海BY市TE較成為住指向串xd荷at餃a零眠地址派的指掌針。厚而X撤BY體TE淋[8銅00哄0]砌則是貞外部湖數(shù)據(jù)帥存儲(chǔ)扔器的弊0x恥80徑00館絕對(duì)渴地址姐。7.宅8胳模貨塊化洲程序叔開發(fā)瞞過(guò)程圖7解.4然程序瓦開發(fā)淋過(guò)程7.予8.艷1宴混合拆編程1.初命名喉規(guī)則表7器.5俗函數(shù)父名的左轉(zhuǎn)換說(shuō)明符號(hào)名轉(zhuǎn)換規(guī)則voidfunc(void)FUNC無(wú)參數(shù)傳遞或不含寄存器參數(shù)的函數(shù)名不作改變轉(zhuǎn)入目標(biāo)文件中,名字只是簡(jiǎn)單地轉(zhuǎn)換為大寫形式voidfunc(void)_FUNC帶寄存器參數(shù)的函數(shù)名加入“_”字符前綴,表明這類函數(shù)包含寄存器的參數(shù)傳遞voidfunc(void)reentrant_?FUNC對(duì)于重入函數(shù)加上“_?”字符串前綴,表明這類函數(shù)包含棧內(nèi)的參數(shù)傳遞例2用匯遮編語(yǔ)車言編堤寫函糖數(shù)"臉to吼up廉pe挺r"訊,參裁數(shù)傳豎遞發(fā)元生在派寄存肅器R蒙7中爭(zhēng)。UP芳PE賞R項(xiàng)SE幼GM租EN東T萌CO絹DE港;程出序段PU睡BL寧IC憑_T纏OU令PP凈ER禮;入菜口地仗址PS折EG壺UP猴PE新R膽;渴程序尊段_T陽(yáng)OU臭PP擦ER抱:豬MO灰V振A嘗,R轟7冬;從慌R7遙中取孕參數(shù)CJ條NE閥A,狠#蘭'a腔',型$+怨3JC做U奧PP睡ER章ETCJ以NE白A墨,草#載'z傅'+風(fēng)1功,$緞+3JN荷C閃U框PP紗ER蟲ETCL姿R勁AC序C內(nèi),5UP妥PE礦RE貍T:種MO扁V獻(xiàn)R舟7熊,A好;閱返回療值放臣在R巨7中RE匠T秋;返練回到贈(zèng)C2.拿參數(shù)傘傳遞滿規(guī)則表7拌.6豬參數(shù)斥傳遞俗的寄逼存器晚選擇參數(shù)類型charintlong,float一般指針第1個(gè)參數(shù)R7R6,R7R4~R7R1,R2,R3第2個(gè)參數(shù)R5R4,R5R4~R7R1,R2,R3第3個(gè)參數(shù)R3R2,R3無(wú)R1,R2,R3fu鑄nc機(jī)1(狼in夕t拌a)顆"a輝"是漁第一糟個(gè)參找數(shù),稻在R鑒6,即R7磁中傳紀(jì)遞。fu棵nc匙2挎(i藏nt緊b心,絡(luò)in已t拌c,丙i統(tǒng)nt部*芳d扣)繡"婦b"罩是第谷一個(gè)吸參數(shù)篇,在染R6矛,R視7中丸傳遞罩;"朵c"異是第滑二個(gè)野參數(shù)券,在哭R4敵,R蒸5中遍傳遞設(shè);"限d"襖是第漂三個(gè)伴參數(shù)駕,在鐘R1握,R咱2,妙R3雜中傳牽遞。fu參nc符3(讓lo旋ng梯e蘋,烈l欠on兆g中f負(fù))哥"掘e"術(shù)是第紋一個(gè)員參數(shù)瓣,在仰R4媽~R涉7中墊傳遞豎;"沫f"奴是第渾二個(gè)訓(xùn)參數(shù)傘,不年能在犁寄存啟器中帥傳遞狀,只俯能在館參數(shù)僚傳遞焰段中侍傳遞撿。fu捷nc離4(方fl種oa潮t姿g迫,偵ch胃ar期h役)醉"g睡"是洞第一可個(gè)參統(tǒng)數(shù),講在R徒4~散R7高中傳烏遞;即"h侄"是倦第二由個(gè)參勵(lì)數(shù),凈必須登在參孫數(shù)傳脆遞段敢中傳語(yǔ)遞。表7焦.7奪函數(shù)丈返回繡值的籌寄存演器返回值寄存器說(shuō)明bitC進(jìn)位標(biāo)位(unsigned)charR7
(unsigned)intR6,R7高位字節(jié)在R6,低位字節(jié)在R7(unsigned)longR4~R7高位字節(jié)在R4,低位字節(jié)在R7floatR4~R732位IEEE格式,指數(shù)和符號(hào)位在R7指針R1,R2,R3R3放存儲(chǔ)器類型,高位在R2,低位在R1在匯灣編子嘴程序碌中,裁當(dāng)前背選擇靠的寄采存器區(qū)組及場(chǎng)寄存?zhèn)蚱鰽賞CC反、B取、D局PT細(xì)R和趁PS瞇W都爸可能選改變濁。當(dāng)態(tài)被C訓(xùn)調(diào)用慘時(shí),降必須贏無(wú)條斤件地識(shí)假設(shè)亂這些穿寄存知器的魯內(nèi)容會(huì)已被陪破壞么。如壁果已份在連灰接/譽(yù)定位話程序辨時(shí)選貸擇了詠覆蓋愈,那餃么每蹤蝶個(gè)匯筑編子兼程序場(chǎng)包含達(dá)一個(gè)狡單獨(dú)池的程錢序段翼是必親要的印,因象為在殼覆蓋拾過(guò)程椅中,孟函數(shù)諸間參樸量通罰過(guò)子蛋程序幫各自愛(ài)的段和參量拔計(jì)算揀。匯腸編子留程序遺的數(shù)僵據(jù)區(qū)狠甚至內(nèi)可包擦含在抓覆蓋還部分背中,壯但應(yīng)府注意雜下面扛兩點(diǎn)切:(1殊)拆所有依段名卻必須合以C丈51憑類似努的方接法建濁立。(2揚(yáng))趁每個(gè)抖有局圾部變排量的構(gòu)匯編屆程序件必須圈指定恰自己談的數(shù)縫據(jù)段急,這責(zé)個(gè)數(shù)新?lián)闻谥荒芎蔀槠湔魉磾?shù)訪勉問(wèn)作午參數(shù)號(hào)傳遞救用。蓋所有廁參數(shù)梳一個(gè)逼接一巾個(gè)被郵傳遞轉(zhuǎn),由洽其它才函數(shù)掩計(jì)算盛的結(jié)絕果保綠存入卡棧。7.拳8.風(fēng)2冷覆善蓋和促共享1.率覆蓋單片演機(jī)片爹內(nèi)存針儲(chǔ)空就間有妥限,規(guī)連接鴿器/滋定位夠器通理常重楊新啟毒用程藍(lán)序不付再用臉的位棒置。炸這就尊是說(shuō)掛,若罷一個(gè)騾程序統(tǒng)不再湖調(diào)用勇,也即不由俗其它收程序株調(diào)用掘(甚航至間化接調(diào)六用)裁,那躬么在定其它紀(jì)程序壤執(zhí)行醉完之爬前,禽這個(gè)傍程序領(lǐng)不再誘運(yùn)行謙。這逃個(gè)程魂序的溝變量綠可以毅放在咐與其奔它程作序完車全相攏同的太RA欣M空輝間,梅很像剃可重趁用的動(dòng)寄存師器。帆這種頭技術(shù)疼就是充覆蓋案。在辰匯編弱中直閣接通棕過(guò)手撿工完榮成的秩這些棍空間均分配子,C繁語(yǔ)言烏中可挖以由批連接駝器自債動(dòng)管若理。間若有辜幾個(gè)專不相相關(guān)聯(lián)致的程升序時(shí)澤,它遲可以弦使R犧AM瞇單元繡比手恥工考挑慮要麥用的拌少。2.筍共享1)慨共翅享變呢量類型匯編語(yǔ)言C語(yǔ)言動(dòng)態(tài)變量
y(){intx;}靜態(tài)變量
staticintx;公用變量PUBLICXX:ds2Intx;外部變量EXTERNDATA(X)MOVDPTR,#Xexternintx;靜態(tài)子程序/函數(shù)Y:…staticy(){…};公共子程序/函數(shù)PUBLICYY:y(){…};外部子程序/函數(shù)EXTERNCODE(Y)LCALLYy()2)用共靈享函芝數(shù)/址子程先序C中氏函數(shù)顫若是依全局僵的(習(xí)公用貢的)溝,可妙以放障在調(diào)較用的向函數(shù)酷之后抱。若駐函數(shù)嫁是模華塊專盆用的風(fēng),它泄可以坦定義漢為靜進(jìn)態(tài)函射數(shù),誕這樣蹄它不甚能被帥其它俊模塊籃調(diào)用規(guī)。C牛語(yǔ)言薪的A惕NS粱I標(biāo)王準(zhǔn)建賺議所袋有函杯數(shù)在訊主函魔數(shù)前賴要有蜂原型鴿(進(jìn)使行說(shuō)散明)浸,然雹后實(shí)蕉際函半數(shù)可告在主樣函數(shù)棍之后東或其嶄它模芬塊中寒。這版符合踏自頂辮向下趕編程夾的概椒念。匯編心語(yǔ)言闊中,樸子程逗序使冶用標(biāo)摧號(hào)可規(guī)在給沿定??藟K的落任何娛位置奧。匯駛編器掙首先娛掃描神得到緩所有桶的符撒號(hào)名猶,然膽后值懷就可詠填入晚LC妨AL掘L或過(guò)LJ索MP赴。一鞏個(gè)模舅塊或取另一及模塊掀共享伯子程寒序,樓一個(gè)屆使用半PU菜BL神IC煤而另扔一個(gè)斬使用世EX性TE蠢RN辰。當(dāng)網(wǎng)指定搞為E梢XT陷ER領(lǐng)N,舊符號(hào)膜類型趁(C豎OD建E,悶DA逐TA椅,X脫DA摩TA禮,I腿DA轟TA短,B淡IT污或N湖UM域BE駕R)較必須亂特別悉加以鉛指定護(hù),以廣便連疼接器騰可以基確定腹放在珍一起橋的正姐確類走型。7.宣8.品3取庫(kù)乳和連樸接器糕/定棋位器1.熟庫(kù)表7毒.9蝕Fr遇an允kl亮in阻C矛51鍬的編覺(jué)譯庫(kù)庫(kù)說(shuō)明C51S.LIBSMALL模式,無(wú)浮點(diǎn)運(yùn)算C51FPS.LIB浮點(diǎn)數(shù)學(xué)運(yùn)算庫(kù)(SMALL模式)C51C.LIBCOMPACT模式,無(wú)浮點(diǎn)運(yùn)算C51FPC.LIB浮點(diǎn)運(yùn)算庫(kù)(COMPACT模式)C51L.LIBLARGE模式,無(wú)浮點(diǎn)運(yùn)算C51FPL.LIB浮點(diǎn)運(yùn)算庫(kù)(LARGE模式)2.除連接恐器/亞定位雖器1)放組封合程右序模承塊將幾耗個(gè)不到同程憐序模鍋塊組梢合為踩一個(gè)鬧模塊夏,并斯自動(dòng)注從庫(kù)軋中挑俗選模猜塊嵌狼入目濾標(biāo)文惑件。鉤輸入僻文件較按命品令行噴中出斜現(xiàn)的蠻順序謠處理孩。通非常的齊程序貿(mào)模塊紅是由胡C5提1編勾譯器忍或A島51板宏匯姜編生菊成的反可重堂入的品目標(biāo)劇文件焰。2)易組盛合段將具技有相揀同段絹名的勢(shì)可重殺定位少段組膊合成而單一暫的段漸。在去一個(gè)漏程序姻模塊賣中定爐義的版一個(gè)臨段成蛙為部例分段額。一浪個(gè)部灘分段學(xué)在源扎文件瘋中以蜜下列惠形式藥指定鼠:(1匹)亂名字半每個(gè)蘇重定黑位段盼有一卷個(gè)名期字,土它可述與來(lái)樹自其驅(qū)它模尸塊的越同名始的可娛重定五位段頃組合至。絕絕對(duì)段甩沒(méi)有漫名字落。(2仙)冒類型常類型粘表明縮慧段所垂屬的預(yù)地址丑空間殊CO轟DE幻玉,X丟DA朗TA倍,D垃AT嚼A或備BI閑T。(3訪)芒定位滑方式復(fù)可幅重定童位段縮慧的定填位方磨式有罪PA癢GE賓,I深NP緊AG跨E,袋IN揭BL貞OC泄K,框BI兄TA魔DD側(cè)R艷ES萍SA云BL儉E或偽UN昌IT偉。I拆NP圖AG字E表逝明段鞋必須嫩放入稀一頁(yè)治(高邊8位咐地址堡相同場(chǎng))中沖以使泥用短拘轉(zhuǎn)移遵和調(diào)芹用指補(bǔ)令。縣IN怎BL印OC符K段桃應(yīng)使片用A詞CA迅LL慘,必狂須放蛛在2蔥04茂8字棒節(jié)塊促中。釋因?yàn)榻q沒(méi)有稈連接顯器可負(fù)以靈烤活地敲判知福調(diào)用忠和轉(zhuǎn)太移是乏否在綠塊內(nèi)囑??墒嬷囟ń┪坏膮瞧渌邢拗凭牵杭o(jì)PA磁GE概--予不能罷超過(guò)落25歲6字床節(jié);禍BI論TA宮DD造RE林SS友AB水LE拿--腎必須騙放在醉可位便尋址為的內(nèi)料部R駁AM桃空間鹿;U黃NI恒T-凍-允述許段使從任廈意字車節(jié)開業(yè)始(壁對(duì)位共變量蒸是位皺)。(4所)柔長(zhǎng)度等一個(gè)萄段的駱長(zhǎng)度住。(5米)抖基址倚段的弟首址吵。對(duì)刷于絕途對(duì)段幟,地遵址由憂匯編蘭器賦蔽予,藥對(duì)于凍可重弄定位店段,曉地址覺(jué)由L蒙51妖決定賞。在慘處理絡(luò)程序壟模塊在時(shí),臟L5惹1自麥動(dòng)產(chǎn)暮生段肯表(掩MA艙P(yáng))膽,該蓋表包孫含了構(gòu)每個(gè)孫段的沿類型青、基愧址、蘿長(zhǎng)度潮、可尾重定爭(zhēng)位性向和名水字。擋L齊51知自動(dòng)者將所梁具有胖相同鑒名字仔的所蜓有部終分段悅組合刪到單先一可借重定羞位段詳中。挖例如倒,三鉗個(gè)程貴序模沿塊包甜含字叮段V雷AR奸,在諷組合花時(shí),天三個(gè)秩段的腔長(zhǎng)度蕩相加股,從妄而組匆合段宅的長(zhǎng)眠度也慨增加斃了。暈對(duì)組各合段寇有下宜列規(guī)漂則:①接所有炮具有焰相同脈名的偷部分毛段必愛(ài)須有降相同成類型罪(C幅OD沈E,挽DA橡TA求,I缺DA忌TA啊,X枯DA識(shí)TA菜或B翅IT當(dāng))。②犯組合腫段的吼長(zhǎng)度季不能是超過(guò)疫存儲(chǔ)報(bào)區(qū)的祖物理部長(zhǎng)度津。③洋每個(gè)妥組合完的部累分段接的定冤位方堆法也敘必須仗相同旺。④謊絕對(duì)交段相溫互不牙組合暑,它必們被肚直接友拷貝洽到輸廚出文亮件。3)謊存信儲(chǔ)器樣分配物理存儲(chǔ)區(qū)最大長(zhǎng)度地址區(qū)段類型程序64KB0~0FFFFHCODE外部數(shù)據(jù)64KB0~0FFFFHXDATA直接尋址片內(nèi)數(shù)據(jù)128字節(jié)0~7FHDATA間接尋址片內(nèi)數(shù)據(jù)256字節(jié)0~0FFHIDATA片內(nèi)數(shù)據(jù)的位空間128位0~7FHBIT表7魄.1鳴0霧M呢CS搭-5耳1系科列的貪物理庭存儲(chǔ)隸區(qū)4)促采索用覆母蓋技塞術(shù)使格用數(shù)冠據(jù)存勸儲(chǔ)器通過(guò)抱采用和一定檔的覆殺蓋技漆術(shù),倒MC愛(ài)S-堅(jiān)51湯系列猜少量符的片鄉(xiāng)豐內(nèi)數(shù)濕據(jù)存別儲(chǔ)器解可由診L5董1有航效地陣使用培。由柱C5旦1編俘譯器槐或是菠A5勉1匯墊編器探生成境的參計(jì)數(shù)和暑局部普變量條(若故使用輝它們洋的函工數(shù)不迫相互鞏調(diào)用哪)可嶺在存聚儲(chǔ)器討中覆濁蓋。閘這樣氏,所帥用的架存儲(chǔ)網(wǎng)器得拔到相寧當(dāng)程廁度地疼減少恨。為完猜成數(shù)充據(jù)覆響蓋,械L5義1分恩析所縫有不菜同函丸數(shù)間俘的調(diào)毯用,炎使用漠該信題息可霸以確季定哪蕉個(gè)數(shù)奮據(jù)和庸位段雄可被獸覆蓋都。使吩用控積制參返數(shù)O度VE粉RL畝AY綠和N區(qū)OO滅VE梢RL藝AY叉可允勤許或輝禁止矛覆蓋傍。O溝VE乎RL宅AY閃是默及認(rèn)值觀,用匹它可閥產(chǎn)生抹非常莊緊湊刪的數(shù)洞據(jù)區(qū)妙。5)矮決沙定外掠部參識(shí)考地鈔址具有皆相同濃名的免外部諒符號(hào)曬(E替XT兔ER漆N)飄和公退用符仿號(hào)(篩PU脊BL杰IC出)被籃確定稿后,睜外部復(fù)符號(hào)煙指向鼻其它思模塊斑中的演地址李。一初個(gè)已嘉聲明培的外售部符刪號(hào)用駝具有份相同加名字粥的功娃用符計(jì)號(hào)確秩定,筍外部生參考潔地址匆由其基公共獸參考圈地址陶確定感。這擾還與江類型閑(D物AT從A,見ID搜AT搖A,糾XD繁AT揪A,蘋CO毒DE附,B填I(lǐng)T匙或N孝UM堵BE臺(tái)R)士有關(guān)虛,如裂果類椅型不戶符或凱未發(fā)歐現(xiàn)外倚部符僻號(hào)參姥考地堅(jiān)址的鹿公用六符號(hào)坐,則垂會(huì)產(chǎn)央生錯(cuò)欲誤。爐公用旺符號(hào)芳的絕郊對(duì)地昏址在私段定貓位后泰決定判。6)師絕銜對(duì)地限址計(jì)蹦算定義軌絕對(duì)尤地址卻并計(jì)乒算可言重定郵位段幻玉的地雖址。綱在段朝分配龍和外撐部公饒用參教考地遮址處爸理完估后,宰程序育模塊代中所膏有可奮重定潮位地描址和咸外部名地址辟要進(jìn)奶行計(jì)稅算,龜此時(shí)警生成冬的目世標(biāo)文采件中政的符盆號(hào)信傭息(蟲DE概BU貴G)敗被改饒變以失反映棄新的旋值。7)綿產(chǎn)榨生絕仗對(duì)目供標(biāo)文脅件可執(zhí)餅行程照序以挪絕對(duì)策目標(biāo)侮格式慮產(chǎn)生辯。該淺絕對(duì)請(qǐng)目標(biāo)貝文件棍可包驢含附損加的運(yùn)符號(hào)導(dǎo)信息次(D淋EB榆UG釀),障從而批使符遙號(hào)調(diào)拿試成嗓為可惠能。阻符號(hào)出信息北可用對(duì)參數(shù)寶NO稱DE仙BU蛋GS百YM派BO值LS抹,N漢OD唇EB摟UG沿PU柜BL懂IC吹S和禁NO膛DE謊BU抬GL莊IN屆ES快禁止?fàn)N。輸機(jī)出文淡件是侵可執(zhí)徒行的吹,并匪可由區(qū)仿真盡器裝鐘入調(diào)譽(yù)試或憂被O聽HS錄51梅翻譯姥為I趙nt娛el壺H禁EX離格式迎文件同以供俗EP路RO愿M固欣化。8)盾產(chǎn)垃生映聾像文遇件產(chǎn)生機(jī)一個(gè)飲反映保每個(gè)貪處理哨步驟鵝的映視像文恢件,餡它顯呈示有碧關(guān)連掘接/狐定位湯過(guò)程擺的信急息和貢程序晨符號(hào)旬,并儉包含右一個(gè)或公用個(gè)和外紫部符瞧號(hào)的鞋交叉膝參考絹報(bào)告乎。映票像文范件包通含下爛列信狗息:①能文件魔名和找命令菊行參舍數(shù)。②筑模塊粉的文弦件名繞和模筍塊名何。③倚一個(gè)蜘包含細(xì)段地閃址、今類型杠、定毅位方屈法和患名字晴的存姻儲(chǔ)器鞭分配通表。籍該表門可在財(cái)命令項(xiàng)行中致用N奏OM邀AP稠參考拆禁止幸。④訴段和曬符號(hào)虧的所編有錯(cuò)在誤列猶表。鑼列表艱文件刮末尾糊顯示徹出所殖有出匆錯(cuò)的喝原因究。⑤謎一個(gè)娃包含化輸入姐文件井中符蘇號(hào)信閃息的姓符號(hào)凡表。腔該信舊息由沒(méi)MO統(tǒng)DU絲式LE趣S,賓SY揭MB位OL正S,適PU斷BL共IC境S和揪LI啟NE夠S名儉組成業(yè),L殊IN溪ES爺是C妥編譯侄器產(chǎn)根生的遞行號(hào)辮。符側(cè)號(hào)信鳥息可抹用參眼數(shù)N體OS箱YM達(dá)BO當(dāng)LS荷,N惠OP通UB烤LI搭CS割和N再OL幕IN舞ES臺(tái)完全梯或部膠分禁疲止。⑥挪一個(gè)鉛按字米母順野序排愿列的膚有關(guān)干所有浙PU篇BL判IC肅和E漿XT果ER誼N符泉號(hào)的媽交叉武參考店報(bào)告攪,其僑中顯融示出彼符號(hào)咽類型不和模喪塊名惑。第句一個(gè)瘡顯示月的模勒塊名畢是定陸義了抄PU秧BL毫IC她符號(hào)刮的模慘塊,鐮后面問(wèn)的模錯(cuò)塊名余是定絹義了校EX涌TE鞭RN鍵符號(hào)運(yùn)的模走塊。嗓在命專令行飄輸入菠參數(shù)判IX皮RE世F可權(quán)產(chǎn)生伍此報(bào)物告。⑦竊在連聾接器叢/定父位器識(shí)運(yùn)行胡期間痛檢測(cè)聯(lián)到的績(jī)錯(cuò)誤透同時(shí)飽顯示扣在屏麥幕和高文件胖尾部此。7.園8.豎4惑程棵序優(yōu)表化以下懂選擇喇對(duì)提梯高程藍(lán)序效透率有蛇很大菠影響嗽:(1五)究盡量芳選擇覽小存令儲(chǔ)模農(nóng)式以猾避免竊使用撿MO智VX仿指令誤。(2穴)翅使用衫大模輕式(南CO活MP蔽AC值T/安LA遞RG串E)遲應(yīng)仔捐細(xì)考退慮要灑放在帖內(nèi)部完數(shù)據(jù)嗽存儲(chǔ)點(diǎn)器的邪變量循要求事是經(jīng)凍常用蝴的或適是用握于中枕間結(jié)掠果的飽。訪準(zhǔn)問(wèn)內(nèi)蟻部數(shù)寸據(jù)存底儲(chǔ)器恭要比敘訪問(wèn)桂外部悄數(shù)據(jù)偉存儲(chǔ)無(wú)器快價(jià)得多邀。內(nèi)完部R卻AM務(wù)由寄另存器珍組、托位數(shù)形據(jù)區(qū)蹄和其厲它用債戶用名“d或at頌a”同類型琴定義武的變柿量共蹄享。球由于異內(nèi)部蘇RA卻M容院量的旬限制呀(1慎28攀~2爪56撤字節(jié)常,由奪使用濫的單驅(qū)片機(jī)價(jià)決定澆),對(duì)必須亦權(quán)衡鄙利弊戶以解涂決訪在問(wèn)效嶄率和頂這些王對(duì)象妙的數(shù)請(qǐng)量之趁間的駝矛盾粘。(3過(guò))箱要考議慮操臥作順丘序,么完成拔一件嫩事后郵再做誼一件籌事。(4滔)梢注意握程序余編寫洋細(xì)則螺。例秒如,楚若使澡用f瘡or小(;栗;)右循環(huán)拌,D局JN脾Z指猾令比該CJ高NE椅指令令更有伐效,摩可減皆少重?fù)茝?fù)循畢環(huán)次欄數(shù)。(5幅)預(yù)若編紛譯器貢不能呀使用事左移情和右濟(jì)移完劫成乘奪除法牌,應(yīng)跟立即淘修改顫,例低如,向左移柴為乘脅2。(6技)下用邏深輯A背ND早/&閃取模乞比用京MO疊D雄/餓%操腥作更芹有效貌。(7昆)慌因計(jì)蜓算機(jī)罪基于韻二進(jìn)今制,鑄仔細(xì)領(lǐng)選擇成數(shù)據(jù)堪存儲(chǔ)然器和述數(shù)組愁大小舒可節(jié)示省操威作。(8嫁)句盡可法能使門用最扁小的役數(shù)據(jù)嘗類型棄,M舞CS安-5藝1系廈列是抗8位爸機(jī),吉顯然礙對(duì)具宣有"謊ch消ar練"類忠型的咽對(duì)象司的操善作比顛"i呆nt忘"或吼"l輪on演g"納類型皺的對(duì)瀉象的勉操作紀(jì)要方畢便得頑多。(9俘)鎮(zhèn)盡可票能使海用"稿un閣si欺gn舌ed鞭"數(shù)進(jìn)據(jù)類冷型。蹲MC賺S-極51枝系列踢CP帝U并控不直血接支父持有是符號(hào)墾數(shù)的探運(yùn)算珍。因附而C伙51輝編譯含器必銀須產(chǎn)漲生與夸之相饅關(guān)的嗽更多肅的程經(jīng)序代不碼以闖解決竟這個(gè)衫問(wèn)題興。(1哈0)宿盡釀可能脅使用倒局部柳函數(shù)騰變量股。編醒譯器亡總是墾嘗試氧在寄攜存器份里保庭持局室部變積量。鞋這樣克,將供循環(huán)堆變量崖(如誼fo得r和悉wh躁il煎e(cuò)循扒環(huán)中仇的計(jì)軋數(shù)變伏量)候說(shuō)明偽為局治部變拔量是姨最好塌的。府使用浙"u瘡ns慘ig估ne坐d栗ch覆ar義/i趣nt展"的蠟對(duì)象塘通常益能獲艘得最促好的濃結(jié)果注。7.容9鋪M奧CS撓-5靈1內(nèi)秋部資友源使炭用的岔C語(yǔ)慣言編萍程7.助9.惜1糧中丙斷應(yīng)何用的淡C語(yǔ)示言編爛程C5嘗1編遼譯器該支持旦在C扎源程溉序中輔直接鵝開發(fā)再中斷繭程序斑。中決斷服畝務(wù)程注序是郊通過(guò)哪按規(guī)碗定語(yǔ)符法格雹式定勻義的權(quán)一個(gè)遲函數(shù)罰。中斷朵服務(wù)途程序礙的函記數(shù)定違義的挖語(yǔ)法欲格式質(zhì)如下指:返回蠶值腿函債數(shù)名囑([拆參數(shù)魔])鍬in筍te勺rr散up礦t求m蒜[u瘋si撫ng歪n擊]{}…表7恐.1皆1與M英CS奪-5竄1中妥斷源啦編號(hào)編號(hào)中斷源入口地址0外部中斷00003H1定時(shí)器/計(jì)數(shù)器0000BH2外部中斷10013H3定時(shí)器/計(jì)數(shù)器1001BH4串行口中斷0023Hus牛in殖g點(diǎn)n選項(xiàng)饞用于火實(shí)現(xiàn)餃工作半寄存如器組絲式的切駐換,揭n是尸中斷歪服務(wù)負(fù)子程燙序中慮選用盯的工槍作寄高存器腰組號(hào)累(0沫~炸3宮)。腐在許仔多情檔況下捆,響漸應(yīng)中護(hù)斷時(shí)蓋需保昨護(hù)有抹關(guān)現(xiàn)臟場(chǎng)信蘋息,衰以便兆中斷闊返回聽后,姐能使映中斷冊(cè)前的短源程名序從潔斷點(diǎn)押處繼遷續(xù)正槐確地存執(zhí)行督下去敬。這折在M慣CS瓜-5廉1單閱片機(jī)晴中,相能很腿方便箱地利膀用工炮作寄胡存器糧組的萄切換社來(lái)實(shí)副現(xiàn)。普即在窩進(jìn)入無(wú)中斷線服務(wù)潑程序禾前的違程序衫中使積用一較組工昆作寄及存器笑,進(jìn)精入中悠斷服撓務(wù)程愚序后趙,由美"u得si把ng庸n掏"切慨換到崖另一旗組寄泛存器倆,中凳斷返競(jìng)回后誓又恢咱復(fù)到豆原寄候存器抱組。天這樣民互相趙切換稈的兩權(quán)組寄語(yǔ)存器娘中的忘內(nèi)容丹彼此撓都沒(méi)擠有被況破壞支。圖掛7.菌5悟擴(kuò)姿展多翼個(gè)中嗎斷源例3圖7.5所示是利用優(yōu)先權(quán)解碼芯片,在單片機(jī)8031的一個(gè)外部中斷INT1上擴(kuò)展多個(gè)中斷源的原理電路圖。圖中是以開關(guān)閉合來(lái)模擬中斷請(qǐng)求信號(hào)。當(dāng)有任一中斷源產(chǎn)生中斷請(qǐng)求,能給8031的INT1引腳送一個(gè)有效中斷信號(hào),由P1的低3位可得對(duì)應(yīng)中斷源的中斷號(hào)。在中騾斷服懲務(wù)程禾序中族僅設(shè)蟻置標(biāo)輸志,慌并??勾鍵效/O丘口輸代入狀如態(tài)。憐Fr站an樂(lè)kl淘in正C怕51躁編譯繁器提患供定喉義特蘇定M尋CS穴-5霸1系寫列成錄員的讓寄存儲(chǔ)器頭頸文件百。M老CS傅-5香1頭雹文件起為r棒eg急51畝.h產(chǎn)。C航51糟程序累如下閘:#拴in邀cl參ud驅(qū)e稼<r馬eg潑51陜.h法>un夸si感g(shù)n違ed分c捏ha旅r軌st些at石us祖;bi關(guān)t者fl脈ag子;vo紡id糕s鑼er頃vi舉ce賴_i欺nt商1(嗽)載i槍nt稀er背ru位pt傘2烤u搞si像ng劫2焰/每*侍IN型T1茶中斷泄服務(wù)狂程序載,使枕用第飯2組然工為作寄鹽存器倍*課/{豬f勞la夫g=謎1;優(yōu)/釋*贏設(shè)置遮標(biāo)志駛*滋/st迫at僵us寒=p能1;合/筑*觀存輸釀入口急狀態(tài)軌*透/}vo贈(zèng)id汽ma蒸in夫(v繼oi雨d){線I白P=哄0x芝04臟;豬/波*巨置I憶NT陪1為革高優(yōu)坦先級(jí)破中斷催*/IE廉=-勿0x乘84管;北/*冒I上NT罵1開倍中斷姿,C科PU樹開中倆斷維*/fo小r(典;博;){鳴if釘(f尤la慨g)牢/*呆有唇中斷頓*演/{盤s姐wi揉tc蹄h(香s
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭教育輔導(dǎo)合同:學(xué)院與家長(zhǎng)共同簽署
- 建筑機(jī)電安裝合同
- 零售店鋪?zhàn)赓U合同細(xì)則
- 戰(zhàn)略合作合同保密規(guī)定2025
- 建筑勞務(wù)分包臨時(shí)合同
- 土地使用權(quán)出讓合同范例
- 代課教師正式合同模板
- 跨國(guó)玉米技術(shù)合作框架合同
- 畢業(yè)未就業(yè)合同樣本:就業(yè)創(chuàng)業(yè)見習(xí)
- 大型水利設(shè)施工程勞務(wù)分包合同
- AQ 6111-2023個(gè)體防護(hù)裝備安全管理規(guī)范知識(shí)培訓(xùn)
- 水滸傳讀書分享會(huì)
- GB/T 44744-2024糧食儲(chǔ)藏低溫儲(chǔ)糧技術(shù)規(guī)程
- 房地產(chǎn)市場(chǎng)報(bào)告 -【成都】【銳理】2024年10月丨房地產(chǎn)市場(chǎng)月報(bào)
- 《護(hù)理禮儀與人際溝通》第五章
- 危急值的考試題及答案
- 《算法設(shè)計(jì)與分析基礎(chǔ)》(Python語(yǔ)言描述) 課件 第1章 緒論
- 灌砂法壓實(shí)度自動(dòng)計(jì)算表(華巖軟件)
- 中華民族共同體的歷史、現(xiàn)實(shí)與未來(lái)
- 魯科版小學(xué)四年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)教案(適合山東科學(xué)技術(shù)版教材)
- 新漢語(yǔ)水平考試(HSK6級(jí))真題
評(píng)論
0/150
提交評(píng)論