單片機push和pop指令 單片機程序里的指令PUSH DPH和POP ACC是什么意思?。?/h1>
單片機程序里的指令PUSH DPH和POP ACC是什么意思?。磕悴欢M裝嗎?Push DPH是將原始DPH中的數(shù)據(jù)推送到堆棧緩存中。Push ACC將堆棧中的數(shù)據(jù)發(fā)送回ACC寄存器。在程序嵌套調(diào)用或
單片機程序里的指令PUSH DPH和POP ACC是什么意思???
你不懂組裝嗎?Push DPH是將原始DPH中的數(shù)據(jù)推送到堆棧緩存中。Push ACC將堆棧中的數(shù)據(jù)發(fā)送回ACC寄存器。在程序嵌套調(diào)用或中斷處理過程中對變量緩存和備份的操作??纯慈魏谓炭茣锏亩询B章節(jié)
51單片機匯編程序詳解:POP是干什么的?
Pop是Pop堆棧指令。在編寫程序的過程中,有時會使用寄存器沖突。例如,我們只是將一個數(shù)據(jù)存儲在a中,但是我們必須進行加法。我們不希望數(shù)據(jù)丟失。我們該怎么辦?當我們這樣做時,我們可以使用push指令在SP指向的空間中打開堆??臻g,并按下a中的內(nèi)容等,在輸入數(shù)據(jù)時,使用pop命令彈出。這樣就完成了工作,保護了現(xiàn)場。歡迎多交流,純手工玩。。。。
51單片機中“ACC”怎么用?
a和ACC的本質(zhì)是一樣的,對應(yīng)的地址是0e0h,但是當使用程序集時,它的格式是兩個名稱。
如果你看看它們的用法,有些地方用a,有些地方用ACC,你會發(fā)現(xiàn)有一定的規(guī)則。當用位表示時,必須使用ACC。例如,它應(yīng)該寫為acc.7而不是a.7。但當它被用作8位二進制數(shù)時,ACC和a可以被使用,但還是有區(qū)別的。例如,Inc ACC和Inc a都可以使用ACC調(diào)用地址,而a則由累加器調(diào)用。因為push和pop是直接尋址,所以它們后面必須跟有直接地址,所以在進入和離開堆棧時不能使用A,只能使用ACC。累加器有三種形式:A、ACC和e0h,它們屬于兩種不同的尋址方法。當使用a時,它是寄存器尋址,指令代碼是04H,當使用ACC和e0h時,它是直接尋址,指令代碼是05e0h inc a,它是寄存器尋址inc a,它是單字節(jié)指令,機器代碼是:04H。機器代碼不顯式指示操作數(shù)。隱含的操作數(shù)是累加器,因此這種尋址方法稱為寄存器尋址。Inc-ACC是直接尋址,Inc-ACC是一條雙字節(jié)指令,轉(zhuǎn)換成的機器碼是:05H,e0h。機器碼包含累加器a的地址e0h,可以轉(zhuǎn)換成其他直接地址,所以這種尋址方式稱為直接尋址。Push和pop指令只支持直接尋址,因此Push ACC機器碼:C0H e0h pop ACC機器碼:d0h e0h
在MCU中,Push和pop分別是棧壓指令和棧出指令,用于臨時保存數(shù)據(jù)。