999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式芯片匯編語言結構化編碼設計的研究

2011-11-08 11:53:22張同華韓名君2
長春大學學報 2011年6期
關鍵詞:程序結構設計

張同華,韓名君2,

(1.蕪湖信息技術職業學院 電子信息系,安徽 蕪湖 241003;2.安徽大學 電子信息工程學院,安徽 合肥 230039)

嵌入式芯片匯編語言結構化編碼設計的研究

張同華1,韓名君2,1

(1.蕪湖信息技術職業學院 電子信息系,安徽 蕪湖 241003;2.安徽大學 電子信息工程學院,安徽 合肥 230039)

為提高嵌入式芯片匯編語言編碼設計的水平,克服因語句結構本身的非結構化及存儲分配的隨意性所造成的困難,根據軟件工程中結構化設計的規范,以MCS-51單片機匯編語言為例,提出了可操作性的解決方案:針對語句的結構,設計與結構化盒圖等效的程序流程圖和語句結構體,構建出結構化的選擇結構和循環結構;針對存儲的分配,設計依據程序之間的調用關系,同層共享非同層獨享的變量存儲空間分配策略。

結構化程序設計;嵌入式芯片;編碼設計;匯編語言

0 引言

在電子技術應用中,各類嵌入式芯片的使用越來越廣泛,芯片制造公司提供了芯片指令代碼助詞符系統及匯編編譯軟件,電子技術設計人員相應的承擔著使用匯編語言進行程序設計的工作。

高質量的軟件設計必須遵循軟件工程規范[1],有關在軟件工程規范的指導下進行嵌入式芯片匯編語言程序設計的方法,人們已做過有益的探討,并應用于實踐中[2,3]。

在軟件工程規范中,要求在編碼設計階段運用結構化程序設計方法,但對嵌入式芯片卻是個難題:其一,嵌入式芯片的匯編語言本身是非結構化的低級語言,不能像高級語言一樣直接實現結構化的程序編碼,其二,編碼設計過程中的存儲空間的分配,也不能像高級語言一樣由編譯系統完成。

因為這個難題,當前有關嵌入式芯片的各類文獻及教材中,編碼設計普遍達不到結構化設計的要求。在有關匯編語言編程方法的研究中,還沒有直接解決這個難題的詳細且可行的方案。

運用嵌入式芯片專用的已結構化的高級語言系統可以回避以上難題,如MCS-51單片機的C51高級語言[4]。但高級語言只針對長期且大量應用的芯片進行開發,新面世的芯片很少有相應的高級語言支持,另外,高級語言在提高編程效率的同時,也降低了程序的運行效率,而有些嵌入式實時系統更需要的是運行效率,芯片制造公司鼓勵使用匯編語言進行芯片功能的開發[5]。

所以,需要尋找在原有嵌入式芯片匯編語言基礎上直接解決這個難題的方法,現提出一種解決方案,就是,通過構建結構化的基本程序功能模塊,制定存儲空間使用策略,使編碼設計達到結構化程序設計的標準。

本文先介紹結構化設計方法的相關規范,再以電子技術設計人員中廣泛使用的MCS-51單片機匯編語言為例,解析本方案的內容。

1 編碼的結構化設計規范

1.1 結構化設計的方法與要求

軟件工程方法將一個完整的軟件系統的設計分為:可行性研究、需求分析、總體設計、編碼設計(含詳細設計)、軟件測試和軟件維護幾個階段,每個階段有相應的設計規范與設計方法,結構化設計方法是編碼設計這個階段的主要方法。

結構化設計的要求是:程序由一條或多條指令代碼構成的程序塊組成,每個程序塊只能是單個入口與單個出口且程序流程是單向的,程序塊的內部只能是順序、選擇或重復三種結構,程序塊之間只能是順序或嵌套二種關系。

盒圖(N-S圖)在形式上沒有轉移語句,只有順序、選擇與重復三種結構,其中重復的主要方式是循環,如圖1中(a)、(b)和(c)所示,所以能用盒圖表示的只能是模塊化的程序結構。

圖1 三種基本程序結構的盒圖表示法

1.2 編碼設計結構化的實現

采用匯編語言進行總體設計很容易達到模塊化設計的要求,但在實行編碼設計的結構化時卻存在著困難。

原因之一在于匯編語言作為低級語言,沒有結構化的語句結構體,系統只提供了多種轉移語句。解決的辦法是通過構建結構化語句體的來實現結構化,其中的關鍵是所有轉移語句必須控制在語句結構體內,可以用所構建語句體的流程圖能否能對應一個等效盒圖作為是否達到結構化的標準。

另一個原因在于匯編語言作為低級語言,編譯系統本身不能有效進行存儲空間的分配。解決的辦法是先將程序中變量所對應的存儲空間機動化,再根據軟件系統子程序之間的模塊結構制定相應的分配策略。

在MCS-51單片機匯編語言中,轉移條件一般由邏輯值表示,所以先將條件式變成邏輯值形式的“值L”,再判斷“值L”進行轉移,在流圖中,應將條件式變成邏輯值的語句包含在判斷語句體中。另外,為了使用標號表示的轉移目標位置仍然在語句體內,在需要時,可以將轉移的目標位置設置成空操作指令,以去除語句體與內嵌模塊的地址標號的關聯,達到信息隱藏的目的。

2 構建語句結構體

語句結構體有順序、選擇與重復(循環)三種,現分別說明符合結構化標準的分支選擇語句和重復循環語句的語句結構體構建方法。

2.1 分支語句結構體的設計

分支結構有雙分支,單分支、多分支三種形式,在結構上,單分支可以通過雙分支簡化得到,多分支可以通過雙分支嵌套得到,還有一種常用的并行多分支,一般另行設計專用的程序結構。現介紹雙分支與并行多分支的結構體的構建。

雙分支語句結構體的構建如圖2所示,結構化的流程圖如圖2(a)所示,對應的語句結構如圖2(b)所示,等效的盒圖如圖2(c)所示。雙分支內嵌判定條件分別為真與假時所要執行的“T分支”與“F分支”二個程序模塊。

圖2 雙分支語結構體

并行多分支語句結構體的構建如圖3,結構化的流程圖如圖3(a)所示,對應的語句結構如圖3(b)所示,等效的盒圖如圖3(c)所示。并行多分支內嵌多個判定條件,某個條件為真則執行對應的處理分支程序模塊。

圖3 并行多分支語句結構體

2.2 循環語句結構體的設計

循環結構常分為當型循環、直到型循環和計數循環三種形式,計數循環可以在當型循環或直到型循環基礎修改得到,現介紹當型循環與直到型循環結構體的構建。

當型循環語句結構體的構建如圖4,結構化的流程圖如圖4(a)所示,對應的語句結構如圖4(b)所示,等效的盒圖如圖4(c)所示。當型循環內嵌循環體程序模塊。

圖4 當型循環語句結構體

直到型循環語句結構體的構建如圖5,結構化的流程圖如圖5(a)所示,對應的語句結構如圖5(b)所示,等效的盒圖如圖5(c)所示。直到型循環內嵌循環體程序模塊。

圖5 直到型循環語句結構體

3 存儲空間分配策略

3.1 存儲空間配置的機動化

為給系統存儲空間的重新分配創造條件,程序變量所對應的存儲空間需機動化。編碼時應當用變量名代表存儲空間,而不能直接使用絕對的存儲地址,這樣做可以方便的實現存儲空間再分配,同時,也使得程序的可讀性變強,調試更容易。存儲空間可分為變量與數據塊二類,數據塊可用首址與長度二個專用變量表示。

存儲空間是分類別的,為了方便再分配,可以將變量的類別信息包含在變量名中,變量名的命名在“匈牙利命名規則”基礎上做適當補充,變量命名規則設置如下:

M作用域_類別_限定詞

M為變量說明,所有變量的第一個字母用M開始;作用域用P或S表示,P為全局變量,S為私有變量;類別是變量類型,Di為字節地址,Ri為可間址的工作區寄存器,Rn為普通工作區寄存器,Da為字節常數,Bi為位地址,Dbs為數據塊首址,Dbl為數據塊長度;限定詞為區分不同變量的自選詞。

圖6 存儲空間機動配置的程序

除了累加器A、程序狀態字PSW和位累加器Cy外,變量的使用必須經等值偽指令命名,子程序間變量的傳遞用全局變量完成。圖6為一個實現了存儲空間機動配置的程序段。

3.2 存儲空間分配策略

軟件系統的結構一般分為主程序系統和若干個中斷部分,每個部分的程序結構圖如圖7所示,每個程序有自己所需要的存儲空間,用變量集表示。因為中斷的發生有具不確定性,所以中斷程序必須獨立處理存儲空間的分配。

圖7 主程序或中斷程序塊結構示意圖

所有子程序編碼結束后,根據程序結構圖,為每個程序分配實際存儲空間,分配的步驟是:

①分配主程序與中斷程序所需要的所有全局變量;

②為同層各模塊分配存儲空間,同層間空間共享;

③為不同模塊層分配存儲空間,空間獨享;

④以同樣的方式分配各中斷程序的存儲空間,中斷程序與主程序之間空間獨享。

有限的堆棧空間主要用于中斷調用時的累加器A與程序狀態字PSW的存儲。

4 結語

本文分析了嵌入式芯片匯編語言在編碼設計過程中實現結構化設計的困難所在,以通用的MCS-51單片機為樣本,給出了在匯編語言基礎上構建結構化語句結構體的可行的實施辦法,提出了系統變量存儲空間統一分配的策略,使程序編碼達到了結構化設計的要求,增加了程序的可讀性及可維護性。

[1] 屠立德,屠祁.軟件工程方法[M].北京,機械工業出版社,2001.

[2] 楊勇,王為民.MCS-51系列單片機結構化程序設計探討[J].電子技術應用,2007(7):24-26.

[3] 曲輝,李海軍,吳利斌,等.單片機結構化程序設計方法與實現[J].內蒙古農業大學學報,2010,31(1):158-161.

[4] 熊光澤,古幼鵬,桑楠.嵌入式應用軟件設計方法學研究綜述[J].計算機應用,2004,24(4):1-4.

[5] 宓哲民,顏見明.淺談結構化程序設計(上)[J].可編程控制器與工廠自動化,2010(10):127-129.

Research on the design of assembly language structured code in embedded chip

ZHANG Tong-hua1,HAN Ming-jun2,1

(1.Department of Electronic Information,Wuhu Vocational College of Information Technology,Wuhu 241003,China;2.School of Electronics and Information Engineering,Anhui University,Hefei 230039,China)

In order to improve the design level of assembly language code in embedded chip and overcome the difficulty of unstructured language statements and random storage allocation,this article,taking MCS-51 MCU assembly language as an example,presents an operable solution according to structural design specifications in software engineering.Based on sentence structures,we have designed equivalent program flowchart and sentence structures with structured box figure to construct the structured choice structure and circulation structure.According to the distribution of storage and call relationship of programs,we have presented a variable storage space distribution strategy of same layer sharing and different layer exclusive.

structured programming;embedded chip;code design;assembly Language

TP368.1

A

1009-3907(2011)06-0022-05

2011-04-13

安徽省專業帶頭人資助項目(DDR2008GZ94),安徽省省級教學名師資助項目(MS2009GZ07),安徽省省級電工電子示范實驗中心資助項目(2008SFZX30)。

張同華(1963-),男,安徽蕪湖人,副教授,碩士,主要從事程序設計與電子技術方面研究。

責任編輯:吳旭云

猜你喜歡
程序結構設計
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
“程序猿”的生活什么樣
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
論《日出》的結構
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 国产一级无码不卡视频| 欧美色图第一页| 一级全免费视频播放| 国产欧美日韩视频怡春院| 国产嫖妓91东北老熟女久久一| 黄色网在线| 国产成人一区在线播放| 亚欧成人无码AV在线播放| 免费又黄又爽又猛大片午夜| 一本色道久久88| 538精品在线观看| 88av在线看| 国产精品手机在线播放| 久久人人爽人人爽人人片aV东京热| 四虎影视永久在线精品| 成人国产一区二区三区| 黄色网站不卡无码| 国产成人1024精品| 国产国拍精品视频免费看| 欧美一级高清片欧美国产欧美| 九色视频线上播放| 国产永久无码观看在线| 国产呦精品一区二区三区网站| 国产精品毛片一区视频播| 91麻豆精品国产高清在线| 国产日韩欧美在线播放| 欧美啪啪一区| 一级做a爰片久久毛片毛片| 九九九国产| 亚洲国产精品日韩专区AV| 67194亚洲无码| 亚洲综合天堂网| 国产区成人精品视频| 中文字幕在线播放不卡| 国产国语一级毛片| 制服丝袜亚洲| 中文字幕精品一区二区三区视频| 国产青榴视频| 成人在线不卡| 8090成人午夜精品| 一级毛片免费观看不卡视频| 免费av一区二区三区在线| 精品综合久久久久久97| 国产在线高清一级毛片| 日本伊人色综合网| 日韩欧美国产中文| 亚洲成人高清在线观看| 国产欧美日韩18| 人妻丰满熟妇av五码区| 国产尤物视频在线| 真人免费一级毛片一区二区| 久久香蕉欧美精品| 一区二区日韩国产精久久| 四虎综合网| 日韩欧美国产另类| 蝌蚪国产精品视频第一页| 激情综合网激情综合| 成人福利视频网| 久久人午夜亚洲精品无码区| 国产精品乱偷免费视频| 日韩成人高清无码| 人妻丰满熟妇αv无码| 欧美一级在线看| 男人天堂伊人网| 狠狠五月天中文字幕| av尤物免费在线观看| 国产成人免费观看在线视频| 国产性生大片免费观看性欧美| 中文字幕在线视频免费| 玩两个丰满老熟女久久网| 久久午夜夜伦鲁鲁片无码免费| 免费一级大毛片a一观看不卡| 四虎影视8848永久精品| 欧美一级黄片一区2区| 亚洲色图欧美| 亚洲小视频网站| 特级欧美视频aaaaaa| 第一页亚洲| 91色爱欧美精品www| 亚洲视频欧美不卡| 高清不卡一区二区三区香蕉| 视频二区国产精品职场同事|