四種基本程序結(jié)構(gòu)
下面我們介紹四種基本程序結(jié)構(gòu)
1) 順序結(jié)構(gòu)
* 程序模塊或指令依次執(zhí)行的結(jié)構(gòu)。
2) 分支結(jié)構(gòu)
* 根據(jù)條件,轉(zhuǎn)向不同程序段(分支)的結(jié)構(gòu)。
* 分支不應(yīng)是模塊間的轉(zhuǎn)移,執(zhí)行分支后應(yīng)返回流程主線(xiàn)。
* 注意防止從一個(gè)分支的出口進(jìn)入另一個(gè)分支的入口
3) 循環(huán)結(jié)構(gòu)
* 按循環(huán)控制條件重復(fù)執(zhí)行某一段程序,用于連續(xù)重復(fù)性操作。
* 循環(huán)圈包括循環(huán)體與循環(huán)控制;循環(huán)結(jié)構(gòu)還包括循環(huán)初始化與后處理。循環(huán)控制有計(jì)數(shù)循環(huán)與條件循環(huán)兩種。
* 循環(huán)可以嵌套,但不應(yīng)交叉,也不要從循環(huán)體外跳入循環(huán)圈。
轉(zhuǎn)載須保留地址:http://www.51hei.com/mcu/286.html
4) 子程序結(jié)構(gòu)
* 在主程序中執(zhí)行調(diào)用子程序指令,CPU轉(zhuǎn)去執(zhí)行子程序。在子程序中由返回指令返回主程序,繼續(xù)執(zhí)行調(diào)用指令的下一條指令。
* 調(diào)用時(shí),先將返回地址壓棧,并按調(diào)用指令提供的地址轉(zhuǎn)入子程序。返回時(shí),從堆棧彈出返回地址送PC,重返主程序。
* 程序中多處使用的功能模塊可采用子程序結(jié)構(gòu),以節(jié)省程序空間。
* 編寫(xiě)與使用子程序的七要素:
* 功能說(shuō)明。
* 子程序名與入口地址。
* 入口條件。
* 出口狀態(tài)。
* 占用資源。
* 子程序中的調(diào)用。
* 編寫(xiě)與使用子程序的四項(xiàng)注意:
* 現(xiàn)場(chǎng)保護(hù)與現(xiàn)場(chǎng)恢復(fù),避免與主程序沖突。
* 堆棧操作應(yīng)成對(duì),且PUSH先行,保護(hù)返回地址。
* 多重調(diào)用應(yīng)考慮堆棧的容量,不宜直接或間接的自反調(diào)用。
* 防止不經(jīng)調(diào)用進(jìn)入子程序,禁止不經(jīng)返回指令跳出子程序。
評(píng)論