stack addressing, stack pointer, stack ram, dan konsep ... · ditentukan oleh isi stack pointer...

11
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

Upload: dinhxuyen

Post on 04-Jun-2019

270 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Stack Addressing, Stack Pointer, Stack RAM, dan Konsep ... · ditentukan oleh isi stack pointer (SP), jadi alamat yang dituju = (SP) ... akumulator, isi index register, status register)

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

Page 2: Stack Addressing, Stack Pointer, Stack RAM, dan Konsep ... · ditentukan oleh isi stack pointer (SP), jadi alamat yang dituju = (SP) ... akumulator, isi index register, status register)

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

Page 3: Stack Addressing, Stack Pointer, Stack RAM, dan Konsep ... · ditentukan oleh isi stack pointer (SP), jadi alamat yang dituju = (SP) ... akumulator, isi index register, status register)

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

Page 4: Stack Addressing, Stack Pointer, Stack RAM, dan Konsep ... · ditentukan oleh isi stack pointer (SP), jadi alamat yang dituju = (SP) ... akumulator, isi index register, status register)

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

Page 5: Stack Addressing, Stack Pointer, Stack RAM, dan Konsep ... · ditentukan oleh isi stack pointer (SP), jadi alamat yang dituju = (SP) ... akumulator, isi index register, status register)

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

Page 6: Stack Addressing, Stack Pointer, Stack RAM, dan Konsep ... · ditentukan oleh isi stack pointer (SP), jadi alamat yang dituju = (SP) ... akumulator, isi index register, status register)

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

Page 7: Stack Addressing, Stack Pointer, Stack RAM, dan Konsep ... · ditentukan oleh isi stack pointer (SP), jadi alamat yang dituju = (SP) ... akumulator, isi index register, status register)

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

Page 8: Stack Addressing, Stack Pointer, Stack RAM, dan Konsep ... · ditentukan oleh isi stack pointer (SP), jadi alamat yang dituju = (SP) ... akumulator, isi index register, status register)

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

Page 9: Stack Addressing, Stack Pointer, Stack RAM, dan Konsep ... · ditentukan oleh isi stack pointer (SP), jadi alamat yang dituju = (SP) ... akumulator, isi index register, status register)

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

Page 10: Stack Addressing, Stack Pointer, Stack RAM, dan Konsep ... · ditentukan oleh isi stack pointer (SP), jadi alamat yang dituju = (SP) ... akumulator, isi index register, status register)

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

Page 11: Stack Addressing, Stack Pointer, Stack RAM, dan Konsep ... · ditentukan oleh isi stack pointer (SP), jadi alamat yang dituju = (SP) ... akumulator, isi index register, status register)

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.