<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 四種基本程序結(jié)構(gòu)

          四種基本程序結(jié)構(gòu)

          作者: 時間:2013-01-07 來源:網(wǎng)絡(luò) 收藏

          下面我們介紹四種基本

          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)返回流程主線。

          * 注意防止從一個分支的出口進(jìn)入另一個分支的入口

          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) 子

          * 在中執(zhí)行調(diào)用指令,CPU轉(zhuǎn)去執(zhí)行。在中由返回指令返回,繼續(xù)執(zhí)行調(diào)用指令的下一條指令。

          * 調(diào)用時,先將返回地址壓棧,并按調(diào)用指令提供的地址轉(zhuǎn)入子程序。返回時,從堆棧彈出返回地址送PC,重返。

          * 程序中多處使用的功能模塊可采用子,以節(jié)省程序空間。

          * 編寫與使用子程序的七要素:

          * 功能說明。

          * 子程序名與入口地址。

          * 入口條件。

          * 出口狀態(tài)。

          * 占用資源。

          * 子程序中的調(diào)用。

          * 編寫與使用子程序的四項(xiàng)注意:

          * 現(xiàn)場保護(hù)與現(xiàn)場恢復(fù),避免與主程序沖突。

          * 堆棧操作應(yīng)成對,且PUSH先行,保護(hù)返回地址。

          * 多重調(diào)用應(yīng)考慮堆棧的容量,不宜直接或間接的自反調(diào)用。

          * 防止不經(jīng)調(diào)用進(jìn)入子程序,禁止不經(jīng)返回指令跳出子程序。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();