51單片機stack堆棧

通常編譯器的堆棧用於保存局部變量、函數的參數、函數的返回值、中斷上下文信息等。但Keil對局部變量、函數參數預先分配空間(放在靜態全局變量區),Keil的堆棧只是用於保存函數嵌套調用的PC、中斷上下文信息。函數

從主程序進入中斷須要入棧字節數:13+PC=15 Byte(ACC,PSW,B,DPH,DPL,R0~R7)編譯器

Keil支持2級中斷15×2=30 Byte。編譯

主程序中每級調用須要消耗2字節保存PC,如調用深度6級,須要6×2=12字節堆棧空間。變量

Keil51 編譯後會生成M51文件,查找?Stack地址,爲堆棧起始地址,向上增加到0xff,溢出則致使單片機復位。程序

相關文章
相關標籤/搜索