matlab堆疊使用方法?

matlab堆疊使用方法?使用者81126860717562021-07-06 10:40:53

堆疊是按先進後出的的原則在記憶體中組織的一個儲存區域。該區域一端固定一端活動,固定端稱為棧底,而活動端稱為棧頂。往堆疊中存入或取出資訊都在棧頂進行。CPU中的堆疊指標SP始終指向棧頂,而堆疊段暫存器SS則指明瞭堆疊段的起始位置。垍頭條萊

堆疊是一個重要的資料結構,它具有“先進後出”的特點,通常用來儲存程式的返回地址。它主要有兩大類操作:進/壓棧操作和出/彈棧操作。萊垍頭條

1)、進棧操作萊垍頭條

PUSH萊垍頭條

指令格式:PUSHReg/Mem頭條萊垍

PUSHImm萊垍頭條

一個字進棧,系統自動完成兩步操作:SP←SP-2,(SP)←運算元;條萊垍頭

一個雙字進棧,系統自動完成兩步操作:ESP←ESP-4,(ESP)←運算元。條萊垍頭

PUSHA萊垍頭條

指令格式:PUSHA萊垍頭條

其功能是依次把暫存器AX、CX、DX、BX、SP、BP、SI和DI等壓棧。萊垍頭條

PUSHAD萊垍頭條

指令格式:PUSHAD萊垍頭條

其功能是把暫存器EAX、ECX、EDX、EBX、ESP、EBP、ESI和EDI等壓棧。萊垍頭條

2)、出棧操作條萊垍頭

POP頭條萊垍

指令格式:POPReg/Mem條萊垍頭

彈出一個字,系統自動完成兩步操作:運算元←(SP),SP←SP+2;萊垍頭條

彈出一個雙字,系統自動完成兩步操作:運算元←(ESP),ESP←ESP+4。萊垍頭條

POPA條萊垍頭

指令格式:POPA垍頭條萊

其功能是依次把暫存器DI、SI、BP、SP、BX、DX、CX和AX等彈出棧。其實,程式設計師不用記住它們的具體順序,只要與指令PUSHA對稱使用就可以了。萊垍頭條

POPAD頭條萊垍

指令格式:POPAD條萊垍頭

其功能是依次把暫存器EDI、ESI、EBP、ESP、EBX、EDX、ECX和EAX等彈出棧,它與PUSHAD對稱使用即可。萊垍頭條