回覆列表
  • 1 # 使用者1560786500579

    MCS-51微控制器組合語言中,沒有SP這條指令,只有針對SP操作的指令。51微控制器中SP是堆疊指標暫存器,存放著當前堆疊地址。堆疊用於儲存子程式呼叫、中斷程式呼叫時程式返回的地址,或者用來臨時儲存某一暫存器的值。除了初始化堆疊時直接給SP賦值,SP顯式存在,其它的對SP有影響的指令,對SP的操作都是隱式的,就是說SP並不出現在指令運算元當中。例如: MOV SP,#80H ;初始堆疊指標,(SP)=80HLCALL XXXX;呼叫XXXX處的子程式,下一條指令PC值壓棧,(SP)=(SP)+2NOP;子程式返回時,RET指令從堆疊中彈出PC值,所以會返回到這裡,(SP)=(SP)-2PUSH ACC;累加器A的內容壓棧儲存,(SP)=(SP)+1POP B;堆疊內儲存的累加器A的內容彈出到B暫存器中,(SP)=(SP)-1使用PUSH、POP指令使用堆疊,要注意進出棧的匹配,否則將引起不可預期的後果。另外如果把30H賦給了SP,稱為設定棧底。以後:PUSH ACC ,就把ACC的內容存放到31H單元;PUSH PSW ,就把PSW的內容存放到32H單元;PUSH B ,就把B的內容存放到33H單元。……彈出時,要用POP指令。利用堆疊,就不用管具體的內容存放在什麼單元了,SP會自動管理。

  • 2 # lanfengz3

    在計算機領域,堆疊是一個不容忽視的概念,堆疊是兩種資料結構。堆疊都是一種資料項按序排列的資料結構,只能在一端(稱為棧頂(top))對資料項進行插入和刪除。在微控制器應用中,堆疊是個特殊的儲存區,主要功能是暫時存放資料和地址,通常用來保護斷點和現場。要點:堆,佇列優先,先進先出(FIFO—first in first out)[1] 。棧,先進後出(FILO—First-In/Last-Out)。

  • 中秋節和大豐收的關聯?
  • 陶喆王力宏都唱了什麼好歌?