push和pop指令例題 51單片機匯編程序詳解:POP是干什么的?
51單片機匯編程序詳解:POP是干什么的?Pop是一條Pop堆棧指令。在編寫程序的過程中,有時會使用寄存器沖突。例如,我們只是將一個數據存儲在a中,但是我們必須進行加法。我們不希望數據丟失。我們該怎么
51單片機匯編程序詳解:POP是干什么的?
Pop是一條Pop堆棧指令。在編寫程序的過程中,有時會使用寄存器沖突。例如,我們只是將一個數據存儲在a中,但是我們必須進行加法。我們不希望數據丟失。我們該怎么辦?當我們這樣做時,我們可以使用push指令在SP指向的空間中打開堆棧空間,按a中的內容等等,這樣就完成了工作,保護了場景。歡迎多交流,純手工玩。。。。
什么是push ,pop?
推就是推,延伸到推。
這是組裝說明。當然,你可以在其他語言中看到它。
它的意思幾乎是一樣的,即在堆棧上放置一個元素。
您可以想象堆棧是一種有底部但沒有蓋子的盒子。先推入的碟片總是在后推入的碟片之后取出。
Pop與push相反。意思是彈出窗口。它意味著從堆棧中彈出一個元素。每次彈出窗口都是堆棧頂部的元素(CD盒頂部的元素,即最后放入的元素)。
在JS中,數組還具有這兩個功能。如果未指定參數,則會在數組末尾添加或刪除元素。指定參數后,將添加或刪除指定的元素。
在匯編中為什么PUSHCS是正確的?但是POPCS是錯誤的?
在匯編程序中,指定寄存器的內容可以通過push指令放入堆棧進行保護,堆棧的內容也可以通過pop指令裝入寄存器。對于代碼段寄存器CS,用戶程序只有pushcs操作,如編寫popcs,編譯器會報錯。這是因為隨意改變CS寄存器的內容會導致程序紊亂,從而導致系統(tǒng)癱瘓。當程序調用發(fā)生時,由CP∪跟隨調用類型完成對場景的保護。對于段內呼叫,只保存偏移地址IP。對于段間調用,段地址寄存器CS和偏移地址寄存器IP同時受到保護。返回指令根據場景的遠近來決定如何恢復場景。當用戶編寫調用程序時,不需要保護或恢復CS和IP,只需要保護其他相關寄存器。如果只想得到程序中當前的CS值,可以通過pushcs將CS值放入堆棧,然后通過pop操作將其放入其他寄存器。