STACK DAN PROSEDUR
1.1 Tujuan
1. Memahami cara kerja stack dan prosedur pada mikroprosesor
2. Memahami instruksi stack dan prosedur
3. Mampu membuat perangkat lunak dengan menggunakan instruksi-instruksi yang berhubungan dengan proses stack dan prosedur
1.2 Peralatan Yang Digunakan
1. 1 set PC atau laptop
2. Perangkat lunak simulator sms32v50
3. Buku Kerja
1.3 Teori Dasar
Stack
Stack artinya adalah "tumpukan". Stack adalah bagian memori yang digunakan untuk menyimpan nilai dari suatu register pada alamat offset terakhir suatu segmen secara sementara. Stack dapat pula didefinisikan sebagai sekelompok lokasi memori di dalam memori baca tulis yang digunakan untuk menyimpan memori sementara selama proses eksekusi program. Lokasi awal memori stack didefinisikan di dalam program utama dan alokasi stack ini biasanya berada pada peta memori baca tulis bagian atas.
Prosedur (Subrutin)
Prosedur atau subrutin adalah sebuah kelompok instruksi yang membentuk substack (misalnya operasi penunda waktu) yang sering dikerjakan oleh program utama. Stack dan subrutin menawarkan keuntungan yang fleksibel di dalam penulisan program. Sebuah rencana pembuatan software yang besar biasanya dibagi dlaam substack yang disebut modul. Awal sebuah modul subrutin, isi register program utama disimpan ke dalam stack dan isi register dikembalikan sebelum kembali ke program utama. Instruksi operasi pada assembler yang menggunakan stack adalah PUSH dan POP. Dalam proses stack ini melibatkan register Stack Pointer (SP). Contoh instruksi stack ditunjukkan dalam Tabel 1. Sedangkan instruksi prosedur ditunjukkan dalam Tabel 2.
Tabel 1 Contoh instruksi stack
Assembler Machine Code Explanation
PUSH BL
|
E0 01
|
Isi register BL
dikopi ke lokasi
memori yang
|
|||
ditunjukkan oleh register SP dan register SP dikurangi
|
|||||
satu.
|
|||||
POP BL
|
E1 01
|
Isi lokasi memori yang ditunjuk oleh register SP
dikopi
|
|||
ke
register BL dan isi register SP ditambah satu.
|
|||||
PUSHF
|
EA
|
Isi register
SR dikopi ke
lokasi memori yang
|
|||
ditunjukkan
oleh register SP dan register SP dikurangi
|
|||||
satu.
|
|||||
POPF
|
EB
|
Isi lokasi memori yang ditunjuk oleh register SP dikopi
|
|||
ke
register SR dan isi register SP ditambah satu.
|
|||||
Tabel 2 Instruksi
prosedur/subrutin
|
|||||
CALL 30
|
CA 30
|
Instruksi untuk memanggil prosedur di alamat 30.
|
|||
Alamat berikutnya ditaruh di memori sesuai alamat SP
|
|||||
dan IP
bernilai 30.
|
|||||
RET
|
CB
|
Kembali
dari prosedur. Lompat ke alamat sesuai SP
|
|||
(pop dari stack)
|
|||||
No comments:
Post a Comment