新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機堆棧學習筆記

        PIC單片機堆棧學習筆記

        作者: 時間:2013-04-08 來源:網絡 收藏

        硬件堆棧:

        或許也可以稱作系統堆棧,是位于片內RAM區。有人說,只要能使用PUSH,POP指令的,都可以說含有硬件堆棧。這樣的說法我個人覺得不是很全面。通過指令進行壓棧和出棧操作只是系統堆棧中的一種操做。系統堆棧還可以被隱含調用。例如,當調用子程序時,系統會主動把斷點壓入堆棧,并不需要用戶通過指令操作。系統堆棧可以用來保存數據,或在任務子程序間傳遞數據。通常,棧底設在內存的高端,也就是把內存的最高一段空間劃作棧區。這些都是向下生長棧。棧指針可能是專用的寄存器,也可能借用一通用寄存器。也有是在數據區里劃一塊作棧區,可能是向上生長,也可能是向下生長。

        11.jpg

        FSR0 指向返回值

        FSR1 指向下一個可用值

        FSR2 指向當前使用的可用值

        軟件堆棧:

        軟件棧是你自己通過編碼實現的。你在內存里劃一塊作棧區,用一個變量作棧指針。

        也可以說是用戶堆棧。可以被定義在內部或外部 RAM中。它是用戶為任務建立的專用數據堆棧,與系統堆棧的數據區是隔開的。它可以保存用戶想保存的任何寄存器和狀態字。

        具體請查看C18編譯器手冊!



        關鍵詞: PIC 單片機 堆棧學習

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 日土县| 东明县| 大厂| 定南县| 海宁市| 赤城县| 喜德县| 义乌市| 翁源县| 天气| 廊坊市| 夏津县| 六盘水市| 天津市| 普兰店市| 宁德市| 寻乌县| 牙克石市| 霍林郭勒市| 闽清县| 长治市| 台中市| 平果县| 龙口市| 河西区| 天等县| 新民市| 南木林县| 莱州市| 温泉县| 三亚市| 文安县| 宁津县| 马公市| 依安县| 株洲县| 托克逊县| 东港市| 嫩江县| 芜湖市| 延津县|