在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<s id="cmphk"><label id="cmphk"></label></s>
    <span id="cmphk"><var id="cmphk"></var></span>
    <dfn id="cmphk"><var id="cmphk"></var></dfn>
    <menu id="cmphk"><thead id="cmphk"></thead></menu>

    <address id="cmphk"></address>

      <dfn id="cmphk"></dfn>
      
      
      <span id="cmphk"></span>

      <object id="cmphk"><tt id="cmphk"></tt></object>
      1. 新聞中心

        堆棧溢出總結

        作者: 時間:2016-11-27 來源:網絡 收藏
        1. 堆棧不夠大
        2.子程序中有沒有直接或條件跳出子程序體的語句。如果有的話在運行N次子程序后就會產生堆棧溢出現(xiàn)象
        3. 程序跳轉、查表等沒設置好頁
        4.GOTO和CALL指令的不同使用 在PIC的匯編程序中,CALL與GOT0指令使用的場臺不同。CALL是用來調用子程序的,在調用完子程序后返回到調用前的程序;而GOTO是無條件轉移,即由此狀態(tài)進入另外一個狀態(tài)而不需要返回。 為了使程序更加具有可讀性,使流程更加清晰、合理,通常程序都采用模塊化程序設計,即將程序按照功能分成不同的子程序,而主程序則相當簡潔,只須采用CALL指令對子程序進行調用。 由于PIC單片機的堆棧有限,在程序中不能無止境地使用GOTO指令,否則會使堆棧溢出,程序無法正常運行。但是在有些時候,例如當程序出現(xiàn)分支時,則不得不使用GOTO指令。對于PICl6F7x系列單片機,程序出現(xiàn)分支時只能通過STATUS寄存器的Z位或C位進行判斷。這時在兩種情況的前一種情況下,必須使用GOTO指令進行轉移;否則在執(zhí)行完第一種情況后,緊接著又執(zhí)行第二種情況。程序如下: BTFSS STATUS,Z GOTO A GOTO B 在跳轉到A時,必須使用GOTO指令;否則執(zhí)行完這條語句以后,緊接著執(zhí)行GOTO B。這樣無論Z為何值,程序都將跳轉到B。而對于GOT0 B,則可以不必使用GOTO指令。 在上面這種情況下,由于GOTO只在子程序內部進行跳轉,小程序內部循環(huán)占用堆棧的級數(shù)不多,因此使用GOTO指令是可行的。但是在大的程序中使用GOTO指令,將有可能無法返回到調用前的下一條指令。 因此,筆者建議,在使用匯編語言進行程序設計時,應該將程序


        關鍵詞: 堆棧溢出子程

        評論


        技術專區(qū)

        關閉