<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 堆棧溢出總結

堆棧溢出總結

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


關(guān)鍵詞: 堆棧溢出子程

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>