|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
[求教]偵測(cè)到堆棧溢出 |
| 作者:51mcubbs 欄目:單片機(jī) |
我在用仿真器編程時(shí)(偉福51編程器),在程序運(yùn)行時(shí)出現(xiàn)“偵測(cè)到堆棧溢出”的提示。 程序的思路如下: main: call xxxxx call xxxxx call xxxxx call xxxxx call xxxxx call xxxxx jmp main xxxx ;若干個(gè)子程序 xxxx xxxx end 程序中多次使用call指令,且子程序嵌套較多,在運(yùn)行時(shí)我在jmp main處設(shè)置了斷點(diǎn),我的程序前4次都能正常運(yùn)行到斷點(diǎn),但第4次跳轉(zhuǎn)之后變出現(xiàn)“偵測(cè)到堆棧溢出”的提示. 求教如何修改。 * - 本貼最后修改時(shí)間:2005-11-19 15:25:01 修改者:51mcubbs |
| 2樓: | >>參與討論 |
| 作者: coke 于 2005/11/18 13:42:00 發(fā)布:
re main: call xxxxx call xxxxx call xxxxx jmp main 程序開始有設(shè)置堆棧嗎?你這種并列CALL方式只會(huì)占用一級(jí)堆棧(無(wú)中斷和嵌套情況下). 1.可能你的子程序嵌套太多了.2.可能是你的哪個(gè)子程序沒有返回. * - 本貼最后修改時(shí)間:2005-11-18 13:44:13 修改者:coke |
|
| 3樓: | >>參與討論 |
| 作者: chenzhen 于 2005/11/18 13:48:00 發(fā)布:
堆棧溢出主要查看以下內(nèi)容 堆棧溢出主要查看1、是否有修改堆棧指針;2、是否嵌套的數(shù)據(jù)保護(hù)的內(nèi)容超高堆棧(以最大嵌套記)。3、是否有調(diào)用沒返回的子程序。4、是否有中斷沒有用中斷返回而用子程序返回的。 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |