stack addressing, stack pointer, stack ram, dan konsep ... · ditentukan oleh isi stack pointer...
TRANSCRIPT
Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 9/Hal 9-1
MODUL KE 9
Sistem Mikroprosesor (3 sks)
MATERI KULIAH :
Pengertian stack addressing (kaitannya dengan Stack RAM dan Stack Pointer); beberapa contoh program pendek menggunakan stack addressing. Penjelasan konsep subrutin dan contoh global program menggunakan subrutin. Pengelompokan instruksi mikroprosesor : data manipulation instruction, data transfer instruction, program manipulation instruction, status management instruction.
POKOK BAHASAN :
Stack Addressing, Stack Pointer,
Stack RAM, dan Konsep Subrutin
Oleh Ir. INDRAGUNG PRIYAMBODO, MT.
9.1 Stack Addressing, Stack Pointer, dan Stack RAM
Stack pointer (SP), stack RAM, dan stack addressing merupakan pengertian-pengertian yang penjelasannya saling berkaitan. Sehingga pada subbab/modul ini akan dibahas secara global dahulu, baru kemudian diberikan contoh-contohnya.
Stack Addressing
Merupakan metode pengalamatan yang alamat efektifnya (alamat yang dituju) ditentukan oleh isi stack pointer (SP), jadi alamat yang dituju = (SP) atau isi SP.
Ini berarti, isi SP harus ditentukan terlebih dulu, dan perlu hati-hati dalam menentukan isi SP dikarenakan SP banyak digunakan oleh mikroprosesor untuk mengatur operasi-operasinya.
Stack Pointer (SP)
Merupakan register alamat (address register) yang terletak di dalam mikroprosesor dan digunakan untuk menyimpan “sebuah” alamat berikut (TOS = top of stack) dari stack RAM yang dapat diisi.
Pengertian dari TOS disini adalah isi dari stack RAM yang paling atas/puncak atau isi dari stack RAM yang terakhir masuk (berarti yang pertama akan keluar).
9
Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 9/Hal 9-2
Stack RAM
Merupakan suatu memori baca-tulis (RAM) yang pada umumnya terletak di luar mikroprosesor.
Stack RAM digunakan untuk menyimpan data/informasi penting (misalnya isi akumulator, isi index register, status register) dalam operasi-operasi yang menggunakan SP. Misalnya untuk operasi :
JSR = Jump to Subroutine
RTS = Return from Subroutine
RTI = Return from Interupt
Dan sebagainya
Stack RAM bersifat LIFO (Last In First Out) atau FILO (First In Last Out), yang berarti bahwa informasi yang terakhir masuk ke stack RAM merupakan informasi yang nantinya akan dikeluarkan terlebih dulu, atau juga berarti bahwa informasi yang pertama masuk ke stack RAM merupakan informasi yang nantinya akan keluar paling akhir.
Bila informasi yang disimpan dalam stack RAM dikehendaki tetap ada meski power off maka perlu ada Vcc Stand-by untuk stack RAM, sehingga perlu ada program pengambilan kembali (jika power off) harus tersimpan di ROM.
Contoh cara penyimpanan informasi di dalam stack RAM
Kondisi Stack RAM mula-mula Kondisi Stack RAM setelah Operasi
Alamat Isi/Data Alamat Isi/Data
m – 7 TOS SP
m – 6 CC
m – 5 Acc. B
m – 4 Acc. A
m – 3 IX H
m – 2 IX L
m – 1 PC H
m TOS SP m PC L
m + 1 m + 1
m + 2 Pengisian m + 2 Pengisian
Stack RAM Stack RAM
Keterangan :
SP : Stack Pointer
CC : Condition Code Register
Acc. B : Accumulator B
Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 9/Hal 9-3
Acc. A : Accumulator A
IX H : Index Register Higher Order 8 bits
IX L : Index Register Lower Order 8 bits
PC H : Program Counter Higher Order 8 bits
PC L : Program Counter Lower Order 8 bits
Karena stack RAM bersifat LIFO dan SP merupakan TOS dari stacj RAM, maka stack RAM hanya dapat menambah atau mengurangi/menghapus informasi/ item dari yang teratas :
Penambahan item pada stack RAM menggunakan instruksi PUSH
Penghapusan/pengurangan item pada stack RAM menggunakan instruksi POP atau PULL
Keuntungan Pemakaian Stack Pointer (SP) atau Stack Addressing :
Dapat menyimpan data ke stack RAM tanpa mengganggu data yang sebelumnya telah ada.
Transfer data ke/dari stack RAM dapat berlangsung cepat dengan instruksi yang relatif singkat. Hal ini dikarenakan informasi alamat telah ada dalam SP.
Sifat LIFO dari stack RAM dapat digunakan untuk menyimpan return address setelah mikroprosesor melaksanakan program subrutin atau program interupsi.
Kerugian Pemakaian Stack Pointer (SP) atau Stack Addressing :
Sulit untuk mencari kesalahan dan melakukan koreksi terhadap program
Mudah melakukan/terjadi kesalahan sehingga perlu hati-jhati dalam pemrograman SP.
1.A. CONTOH OPERASI STACK
1. Untuk melaksanakan program : PUSH A POP C
Kondisi awal
STACK RAM MIKROPROSESOR
10
blank
blank
blank
blank
::
A 35
B 123
C 64
D 15
Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 9/Hal 9-4
Setelah instruksi PUSH A
STACK RAM MIKROPROSESOR
35
10
blank
blank
blank
::
A 35
B 123
C 64
D 15
Setelah instruksi POP C
STACK RAM MIKROPROSESOR
10
blank
blank
blank
blank
::
A 35
B 123
C 35
D 15
2. Untuk melaksanakan program : PUSH A PUSH C POP D POP B
Kondisi awal
STACK RAM MIKROPROSESOR
10
blank
blank
blank
blank
::
A 35
B 123
C 64
D 15
Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 9/Hal 9-5
Setelah instruksi PUSH A
STACK RAM MIKROPROSESOR
35
10
blank
blank
blank
::
A 35
B 123
C 64
D 15
Setelah instruksi PUSH C
STACK RAM MIKROPROSESOR
64
35
10
blank
blank
::
A 35
B 123
C 64
D 15
Setelah instruksi POP D
STACK RAM MIKROPROSESOR
35
10
blank
blank
blank
::
A 35
B 123
C 64
D 64
Setelah instruksi POP B
STACK RAM MIKROPROSESOR
10
blank
blank
blank
blank
::
A 35
B 35
C 64
D 64
Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 9/Hal 9-6
1.B. CONTOH OPERASI STACK MENGGUNAKAN SP
1. Untuk melaksanakan program : PUSH A POP B
Kondisi Awal POP A
STACK RAM MIKROPROSESOR
Alamat Isi/Data
45 44 43 42 41 40
26 10
A 17
B 33
SP 41
Setelah instruksi PUSH A
STACK RAM MIKROPROSESOR
Alamat Isi/Data
45 44 43 42 41 40
17 26 10
A 17
B 33
SP 42
Setelah instruksi POP B
STACK RAM MIKROPROSESOR
Alamat Isi/Data
45 44 43 42 41 40
26 10
A 17
B 17
SP 41
Setelah instruksi POP A
STACK RAM MIKROPROSESOR
Alamat Isi/Data
45 44 43 42 41 40
10
A 26
B 17
SP 40
Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 9/Hal 9-7
9.2 Konsep Subrutin (Subroutine)
Konsep subrutin secara global digambarkan seperti berikut ini.
Program Utama
Subrutin 1
Start
1
CALL Subrutin 1
Instruksi Berikutnya 2 Subrutin 2
CALL Subrutin 2 Start
Instruksi Berikutnya
4
3
RETURN
RETURN
Beberapa hal yang terkait dengan subrutin adalah :
Diawali dengan instruksi yang berlabel sebagai alamat masuk atau alamat yang dipanggil.
Instruksi pertamannya harus membuat temporary storage (untuk mengamankan kondisi mutakhir), terutama bila subrutin dapat dipanggil oleh interupt (dapat diinterupsi).
Ditengahnya memberikan suatu hasil.
Diakhirir dengan instruksi RETURN untuk kemlabi ke program utama (main program).
Program Utamanya (main program) :
Harus passing parameter (menyiapkan data untuk input-nya) untuk digunakan oleh subrutin.
Harus menyiapkan return address di stack (yang berarti sebelumnya stack pointer harus sudah diinisiasi terlebih dahulu).
Catatan :
Biasanya otomatis dilakukan oleh instruksi CALL.
Untuk INTEL 8080 inisiasi SP dapat menggunakan alternatif LXI SP, double
Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 9/Hal 9-8
atau SPHL : (HL) SP
Harus melakukan CALL subrutin.
Menginterpretasikan hasil subrutin.
CONTOH OPERASI SUBRUTIN
Untuk melaksanakan program berikut ini
M E M O R I Urutan Proses
Alamat Isi/Data
11 12
: 24
: :
33 34
: 39
: 48
: :
64 65
CALL Subrutin 1 : : Start Subrutin 1 : : CALL Subrutin 2 : : RETURN : Start Subrutin 2 : : RETURN :
a b f c e d
Kondisi awal
STACK RAM MIKROPROSESOR
Alamat Isi/Data
: FFFB FFFC FFFD FFFE FFFF
: : :
39 93 89
SP FFFD
PC 11
Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 9/Hal 9-9
a. Setelah Instruksi : CALL Subrutin 1
STACK RAM MIKROPROSESOR
Alamat Isi/Data
: FFFB FFFC
FFFD FFFE FFFF
: :
12
39 93 89
SP FFFC
PC 24
Alamat Berikutnya (Instruksi Start Subrutin 1)
Alamat dari Instruksi CALL Subrutin 1 + satu = 11 + 1 = 12
b. Setelah Instruksi : Start Subrutin 1
STACK RAM MIKROPROSESOR
Alamat Isi/Data Tetap
: FFFB FFFC FFFD FFFE FFFF
: :
12 39 93 89
SP FFFC
PC 25
Alamat Berikutnya = Alamat instruksi Start Subrutin 1 + satu = 24+1 = 25
Tetap
c. Setelah Instruksi : CALL Subrutin 2
STACK RAM MIKROPROSESOR
Alamat Isi/Data
: FFFB FFFC FFFD FFFE FFFF
: 34 12 39 93 89
SP FFFB
PC 48
Alamat Berikutnya (Instruksi Start Subrutin 2)
Alamat dari Instruksi CALL Subrutin 2 + satu = 33 + 1 = 34
Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 9/Hal 9-10
d. Setelah Instruksi : Start Subrutin 2
STACK RAM MIKROPROSESOR
Alamat Isi/Data Tetap
: FFFB FFFC FFFD FFFE FFFF
: 34 12 39 93 89
SP FFFB
PC 49
Alamat Berikutnya = Alamat instruksi Start Subrutin 2 + satu = 48+1 = 49
Tetap
e. Setelah Instruksi : RETURN (milik Subrutin 2)
STACK RAM MIKROPROSESOR
Alamat Isi/Data
: FFFB FFFC
FFFD FFFE FFFF
: :
12
39 93 89
SP FFFC
PC 34
Alamat Berikutnya (Instruksi Start Subrutin 2)
Kembali ke alamat STACK RAM sebelumnya = FFFC
f. Setelah Instruksi : RETURN (milik Subrutin 1)
STACK RAM MIKROPROSESOR
Alamat Isi/Data
: FFFB FFFC FFFD FFFE FFFF
: : :
39 93 89
SP FFFD
PC 12
Alamat Berikutnya (Instruksi Start Subrutin 1)
Kembali ke alamat STACK RAM sebelumnya = FFFD
Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 9/Hal 9-11
Bila diringkas untuk bagian yang berubah saja sbb :
Urutan Proses
TOS (Top of Stack RAM)
SP (Stack
Pointer)
PC (Program Counter)
Alamat Isi/Data
a
b
c
d
e
f
Kondisi Awal
Setelah CALL Subrutin 1
Setelah Start Subrutin 1
Setelah CALL Subrutin 2
Setelah Start Subrutin 2
Setelah RETURN
Setelah RETURN
FFFD
FFFC
FFFC (Tetap)
FFFB
FFFB (Tetap)
FFFC
FFFD
39
12
12
34
34
12
39
FFFD
FFFC
FFFC
FFFB
FFFB
FFFC
FFFD
11
24
25
48
49
34
12
DAFTAR PUSTAKA
[1] Lance A. Leventhal, Introduction to Microprocessors : Software, Hardware, Programming, Prentice Hall,1978.
[2] Pasahow, Edward, J. , Microprocessor and Microcomputer Interfacing for Electronics Technicians, McGraw-Hill, New York, 1981.
[3] Chris H. Pappas dan Willian H. Murray III, 80386 Mikroprocessor Handbook, Osborne McGraw-Hill, 1988
[4] Avtar Singh dan Walter A. Triebel, The 8088 Microprocessor : Programmnig, Interfacing, Software, Hardware, and Applications, Prentice Hall, International Editions, 1989
[5] Charles M.Gilmore , Microprocessors:Principles and Applications,
Glencoe/McGraw-Hill, 2nd International Ed. , 1995
[6] Rodnay Azks (alih bahasa : S.H. Nasution), From Chips to Systems : An
Introduction to Microprocessors ( Dari Chip ke Sistem : Pengantar Mikroprosesor), Sybec Inc., 1981 (Penerbit Erlangga, 1986).
[7] Harry Garland (alih bahasa : M. Barmawi dan M.O. Tjia), Introduction to Microprocessor System Design ( Pengantar Desain Sistem Mikroprosesor), McGraw-Hill Inc., 1979 (Penerbit Erlangga, 1984).
[8] Barry B. Brey , Microprocessors and Peripherals : Hardware,Software,Interfacing,
and Applications, Merrill Publishing Company, 1988.