![]() |
發布時間: 2021-9-26 15:22
正文摘要:這個是STC8的一個官方寫的I2C的中斷函數,其中pop和push函數是什么意思?網上查找的說法是拿出和放進數據,但在這具體的程序里面還是不能明白?望大佬們不吝賜教 |
npn 發表于 2021-9-27 12:23 站在C語言的角度來講, PUSH 和 POP 是可以操作變量的,只要這個變量存在于直接地址中。 PUSH 是把直接地址 推入到 SP+1后 所指向的間接地址。 POP 是把SP指向的間接地址的內容, 取出到直接地址后 SP -1。 |
_push_() 與 _pop_() 函數,位于頭文件 intrins.h 內。 編譯后轉換成PUSH POP匯編指令。 只能操作寄存器 且不能是變量、立即數。 |
Y_G_G 發表于 2021-9-26 17:08 ![]() |
堆棧在8051的C語言中不需要學,8051用的是軟件堆棧,原理你要知道 一堆其它的單片機用的是硬件堆棧,這個就要了解了,特別是那種只有4層的低端單片機,很容易就溢出了,一溢出了,程序就跑飛了 |
188610329 發表于 2021-9-26 16:21 明白了 謝謝 |
出入棧的,其實可以不寫,進出中斷,C語言編程的話本來就自動出入棧的。 |
就是入棧和出棧。 |