Menggunakan Penunjuk Stack

Menggunakan Penunjuk Stack

Penunjuk stack 8051 memiliki lebar 8-bit. Jika tidak dijalankan secara spesifik, ia di-load dengan nilai default 07H, setelah reset. Stack adalah suatu set memori lokasi yang dicadangkan untuk penyimpanan sementara dari hasil intermediate atau register. Memori stack terpakai saat perintah-perintah seperti PUSH, POP, ACALL, LCALL, RET, RETI dieksekusi.

Mari kita lihat bagaimana operasi stack dilakukan dalalam 8051. Stack 8051 berkembang dari alamat rendah ke alamat yang lebih tinggi. Selama perintah PUSH, penunjuk stack ditambahkan terlebih dahulu dan kemudian data tersebut disimpan di alamat yang ditunjuk oleh penunjuk stack. Namun, selama perintah POP, data diambil dari lokasi dimana alamatnya yang sekarang ditunjuk oleh penunjuk stack dan kemudian penunjuk stack tersebut dikurangi. Ini berarti, penunjuck stack-nya sebelumnya dikurangi untuk POP dan sesudahnya ditambahkan untuk PUSH. Perhatikan contoh di bawah:

POP DPH

Penunjuk stack dijalankan pada 55H oleh perintah MOV SP, #55H. Sekarang lokasi 55H dalam RAM on-chip mengandung alamat segera 23H. Lalu, secara berkelanjutan menggunakan perintah POP DPH dalam RAM on-chip akan me-load konten dari lokasi 55H dalam penunjuk data DPH byte tinggi, dan kemudian penunjuk stack-nya dikurangi sebanyak 1. Terakhir, DPH konten DPH akan menjadi 23H, dan SP akan memiliki 54H. Ini ditunjukkan di diagram di bawah:

Operasi POP

Secara serupa, untuk operasi PUSH, perhatikan segmen program di bawah:

PUSH DPL

Perintah pertama akan me-load penunjuk data byte rendah dengan data segera 44H. SP sekarang dijalankan dengan 54H. Perintah PUSH akan menambahkan SP sebanyak 1, menjadikan konten SP sama dengan 55H. Sekarang, lokasi 55H dalam memori stack on-chip akan di-load dengan konten dari DPL, misalnya 44H. Ini ditunjukkan oleh gambar di bawah:

Operasi PUSH

Mungkin Anda juga menyukai

Tinggalkan Balasan

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.