Observasi Stack

4
OBSERVASI STACK POINTER 1. Pengertian Stack Pointer Adalah suatu register yang digunakan untuk operasi stack seperti menyimpan alamat return saat memanggil subroutine. SP merupakan register yang secara implisit digunakan oleh  perintah PUSH dan POP yaitu men yimpan dan mengambil kembali dari stack. 2. Ilustrasi Stack Ketika program mulai dijalankan, bagian bersebelahan tertentu memori disisihkan untuk  program yang disebut stack. Gambar 1. Ilustrasi Stack Stack pointer biasanya register yang berisi atas tumpukan. Stack pointer berisi alamat terkecil x sehingga alamat lebih kecil dari x dianggap sampah, dan setiap alamat yang lebih  besar dari atau sama dengan x d ianggap valid. Dalam contoh di atas, stack pointer mengandung nilai 0x0010 0000. Wilayah yang diarsir dari diagram merupakan bagian yang valid dari stack. Beberapa hal yang perlu diperhatikan untuk mempelajari stack Stack Bottom: Alamat valid terbesar dari stack. Ketika stack diinisialisasi, poin stack  pointer akan menuju ke stack bo ttom Stack Limit:  Alamat valid terkecil dari stack. Jika stack pointer semakin kecil dari ini, maka ada stack overflow. 3. Operation of Stack 3.1.Selama proses pushing, stack beroperasi pada “decrement then store” mode . The stack pointer is decremented first, then the information is placed on the stack. 3.2.Selama proses poping stack beroperasi pada  use then increment” style. The information is retrieved from the top of the the stack and then the pointer is incremented. 3.3.SP pointer selalu menunjuk ke “top of the stack” 4. Push and Pop Seperti struktur data dengan nama yang sama, ada dua operasi pada stack: push dan pop. Biasanya, push dan pop didefinisikan sebagai berikut:

Transcript of Observasi Stack

Page 1: Observasi Stack

7/23/2019 Observasi Stack

http://slidepdf.com/reader/full/observasi-stack 1/3

OBSERVASI STACK POINTER

1.  Pengertian Stack Pointer

Adalah suatu register yang digunakan untuk operasi stack seperti menyimpan alamat return

saat memanggil subroutine. SP merupakan register yang secara implisit digunakan oleh

 perintah PUSH dan POP yaitu menyimpan dan mengambil kembali dari stack.

2.  Ilustrasi Stack

Ketika program mulai dijalankan, bagian bersebelahan tertentu memori disisihkan untuk

 program yang disebut stack.

Gambar 1. Ilustrasi Stack

Stack pointer biasanya register yang berisi atas tumpukan. Stack pointer berisi alamat

terkecil x sehingga alamat lebih kecil dari x dianggap sampah, dan setiap alamat yang lebih

 besar dari atau sama dengan x dianggap valid.

Dalam contoh di atas, stack pointer mengandung nilai 0x0010 0000.

Wilayah yang diarsir dari diagram merupakan bagian yang valid dari stack.

Beberapa hal yang perlu diperhatikan untuk mempelajari stack

Stack Bottom: Alamat valid terbesar dari stack. Ketika stack diinisialisasi, poin stack

 pointer akan menuju ke stack bottom

Stack Limit: Alamat valid terkecil dari stack. Jika stack pointer semakin kecil dari ini,

maka ada stack overflow.

3.  Operation of Stack

3.1.Selama proses pushing, stack beroperasi pada “decrement then store” mode.

The stack pointer is decremented first, then the information is placed on the stack.

3.2.Selama proses poping stack beroperasi pada “use then increment” style. 

The information is retrieved from the top of the the stack and then the pointer is

incremented.

3.3.SP pointer selalu menunjuk ke “top of the stack”  

4.  Push and Pop

Seperti struktur data dengan nama yang sama, ada dua operasi pada stack: push dan pop.

Biasanya, push dan pop didefinisikan sebagai berikut:

Page 2: Observasi Stack

7/23/2019 Observasi Stack

http://slidepdf.com/reader/full/observasi-stack 2/3

4.1.Push: Anda dapat mem push satu atau lebih register, dengan menetapkan stack pointer ke

nilai yang lebih kecil (biasanya dengan mengurangi 4 kali jumlah register yang akan di

 push pada stack) dan menyalin register ke stack.

Berikut adalah diagram dari push stack:

Gambar 2. Ilustrasi saat push

Blok pertama adalah memperlihatkan stack sebelum push operation

Blok kedua adalah memperlihatkan stack pointer mengalami 4 decrement

Blok ketiga adalah memperlihatkan stack setelah 4 byte dari register 3 telah disalin ke

alamat 0x000f fffc .

PUSH instruction

PUSH B (1 Byte Instruction) –  Decrement SP

 –  Copy the contents of register B to the memory

location pointed to by SP

 –  Decrement SP

 –  Copy the contents of register C to the memory

location pointed to by SP

Gambar 2. Ilustrasi saat instruction

4.2.Pop: Anda dapat mem pop satu atau lebih register, dengan menyalin data dari stack

untuk register, kemudian untuk menambah nilai ke stack pointer (biasanya

menambahkan 4 kali jumlah register yang akan muncul di stack).

Berikut adalag diagram untuk Pop operation:

Page 3: Observasi Stack

7/23/2019 Observasi Stack

http://slidepdf.com/reader/full/observasi-stack 3/3

 

Gambar 3. Ilustrasi saat pop

Blok paling kiri menunjukkan initial state dari stack

Blok selanjutnya menunjukkan saat data telah disalin

Blok selanjutnya menunjukkan saat telah terjadu afrer adjusting SP

POP instruction

POP D (1 Byte Instruction)

 –  Copy the contents of the memory location pointed

to by the SP to register E

 –  Increment SP

 –  Copy the contents of the memory location pointed

to by the SP to register D

 –  Increment SP

Gambar 4. Ilustrasi pop instruction