Anda di halaman 1dari 11

FAKULTAS TEKNIK UNIVERSITAS

NEGERI YOGYAKARTA
LAPORAN PRAKTEK MIKROPROSESOR
Semester PEMROGRAMAN DENGAN STACK POINTER 4 Jam
III Pertemuan
JOB 5

LAPORAN 6 PRAKTIK MIKROPROSESOR PEMROGRAMAN DENGAN


STACK POINTER

Tugas ini disusun untuk memenuhi tugas mata kuliah Praktik Mikroprosesor

Dosen : Eko Swi Damarwan M.Pd.

Disusun Oleh:

Mat Rohhim Nur Cahyo (18501241050)

PROGRAM STUDI PENDIDIKAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS NEGERI YOGYAKARTA

2019

Dibuat oleh Dilarang memperbanyak sebagian atau seluruh isi Diperiksa


: dokumen tanpa ijin tertulis dari Fakultas Teknik oleh :
Universitas Negeri Yogyakarta
FAKULTAS TEKNIK UNIVERSITAS
NEGERI YOGYAKARTA
LAPORAN PRAKTEK MIKROPROSESOR
Semester PEMROGRAMAN DENGAN STACK POINTER 4 Jam
III Pertemuan
JOB 5

A. TUJUAN
1. Dapat mengoperasikan Z80 IDE Onshonsoft dengan baik dan lancar
2. Dapat membuat dan menjalankan pemrograman stack pointer baik PUSH maupun POP dengan
lancar

B. ALAT DAN BAHAN

1. Lembar tugas
2. Buku panduan
3. Sofware Z80 Simulator IDE Oshonsoft

C. DASAR TEORI
Di dalam mikroprosesor Z80, untuk bisa berpindah atau lebih tepatnya melompat dari satu baris program ke
baris program lainnya dapat memanfaatkan instruksi JUMP. Instruksi JUMP membuat pemrograman di
mikroprosesor Z80 menjadi lebih fleksibel dan memberikan banyak kemudahan. Instruksi ini sering
digunakan dalam struktur percabangan di pemrograman.
Pada stack pointer terdapat dua macam perintah yaitu PUSH dan POP. PUSH yaitu menyimpan data dalam
memori yang ditunjuk oleh register SP sedangkan POP adalah mengambil data pada alamat memori yang
ditunjuk oleh register SP. Stack pointer berjalan dengan prinsip LIFO (Last In First Out) yang berarti data
yang dimasukkan pertama diambil terakhir sedangkan data yang masuk terakhir akan diambil terlebih
dahulu. Ilustrasi dari prinsip kerja PUSH yaitu:
REG A REG B REG C
70 50 40

- 40 50 70

Dibuat oleh Dilarang memperbanyak sebagian atau seluruh isi Diperiksa


: dokumen tanpa ijin tertulis dari Fakultas Teknik oleh :
Universitas Negeri Yogyakarta
FAKULTAS TEKNIK UNIVERSITAS
NEGERI YOGYAKARTA
LAPORAN PRAKTEK MIKROPROSESOR
Semester PEMROGRAMAN DENGAN STACK POINTER 4 Jam
III Pertemuan
JOB 5

1800 17FF 17FE 17FD


Mnemonik dari PUSH adalah sebagai berikut:

PUSH xx : (SP – 1)  xx (high)

: (SP – 2)  xx (low)

: SP  SP – 2

Keterangan:

xx : 16 bit register (AF, BC, DE, HL, IX, IY)

Sedangkan mnemonic dari POP yaitu:


POP xx : xx (low)  SP

: xx (high)  SP + 1

: SP  SP + 2

Keterangan:

xx : 16 bit register (AF, BC, DE, HL, IX, IY)

D. DATA PRAKTIKUM
1. Kode program :
LD SP, 18CFH
LD B, 70H
LD C, 80H
PUSH BC
LD D, 30H
LD E,50H
PUSH DE
HALT
.END

Dibuat oleh Dilarang memperbanyak sebagian atau seluruh isi Diperiksa


: dokumen tanpa ijin tertulis dari Fakultas Teknik oleh :
Universitas Negeri Yogyakarta
FAKULTAS TEKNIK UNIVERSITAS
NEGERI YOGYAKARTA
LAPORAN PRAKTEK MIKROPROSESOR
Semester PEMROGRAMAN DENGAN STACK POINTER 4 Jam
III Pertemuan
JOB 5

2. Kode program:
LD SP, 18CBH
LD HL, 0000H
LD IX, 0000H
POP IX
POP HL
HALT
.END

Dibuat oleh Dilarang memperbanyak sebagian atau seluruh isi Diperiksa


: dokumen tanpa ijin tertulis dari Fakultas Teknik oleh :
Universitas Negeri Yogyakarta
FAKULTAS TEKNIK UNIVERSITAS
NEGERI YOGYAKARTA
LAPORAN PRAKTEK MIKROPROSESOR
Semester PEMROGRAMAN DENGAN STACK POINTER 4 Jam
III Pertemuan
JOB 5

3. Kode program:
LD SP, 19AEH
LD B,20H
LD C,40H
PUSH BC
LD D, 70H
LD E,80H
PUSH DE
LD IX, 0000H
LD HL, 0000H
POP HL
POP IX
HALT
.END

Dibuat oleh Dilarang memperbanyak sebagian atau seluruh isi Diperiksa


: dokumen tanpa ijin tertulis dari Fakultas Teknik oleh :
Universitas Negeri Yogyakarta
FAKULTAS TEKNIK UNIVERSITAS
NEGERI YOGYAKARTA
LAPORAN PRAKTEK MIKROPROSESOR
Semester PEMROGRAMAN DENGAN STACK POINTER 4 Jam
III Pertemuan
JOB 5

4. Kode program:
LD B,05H
LD HL,1900H
LOOP PUSH BC
LD A,(HL)
LD B, 03H
KALI ADD A,A
DJNZ KALI
LD (HL),A
INC HL
POP BC
DJNZ LOOP
HALT
.END
Pada alamat memori 1900 – 1904 diisi data 01H-05H

Dibuat oleh Dilarang memperbanyak sebagian atau seluruh isi Diperiksa


: dokumen tanpa ijin tertulis dari Fakultas Teknik oleh :
Universitas Negeri Yogyakarta
FAKULTAS TEKNIK UNIVERSITAS
NEGERI YOGYAKARTA
LAPORAN PRAKTEK MIKROPROSESOR
Semester PEMROGRAMAN DENGAN STACK POINTER 4 Jam
III Pertemuan
JOB 5

5. Kode program:
LD SP,1900H
LD BC,1910H
LD IX,1920H
PUSH BC
PUSH IX
POP HL
POP IY
HALT
.END

Dibuat oleh Dilarang memperbanyak sebagian atau seluruh isi Diperiksa


: dokumen tanpa ijin tertulis dari Fakultas Teknik oleh :
Universitas Negeri Yogyakarta
FAKULTAS TEKNIK UNIVERSITAS
NEGERI YOGYAKARTA
LAPORAN PRAKTEK MIKROPROSESOR
Semester PEMROGRAMAN DENGAN STACK POINTER 4 Jam
III Pertemuan
JOB 5

6. Kode program:
LD SP,1820H
LD BC,1900H
LD IX,0BCDAH
PUSH BC
PUSH IX
POP HL
POP IY
HALT
.END

Dibuat oleh Dilarang memperbanyak sebagian atau seluruh isi Diperiksa


: dokumen tanpa ijin tertulis dari Fakultas Teknik oleh :
Universitas Negeri Yogyakarta
FAKULTAS TEKNIK UNIVERSITAS
NEGERI YOGYAKARTA
LAPORAN PRAKTEK MIKROPROSESOR
Semester PEMROGRAMAN DENGAN STACK POINTER 4 Jam
III Pertemuan
JOB 5

7. Kode program:
LD B,05H
LD HL,1900H
LOOP PUSH BC
LD A,(HL)
LD B, 03H
KALI ADD A,A
DJNZ KALI
LD (HL),A
INC HL
POP BC
DJNZ LOOP
HALT
.END

Dibuat oleh Dilarang memperbanyak sebagian atau seluruh isi Diperiksa


: dokumen tanpa ijin tertulis dari Fakultas Teknik oleh :
Universitas Negeri Yogyakarta
FAKULTAS TEKNIK UNIVERSITAS
NEGERI YOGYAKARTA
LAPORAN PRAKTEK MIKROPROSESOR
Semester PEMROGRAMAN DENGAN STACK POINTER 4 Jam
III Pertemuan
JOB 5

E. ANALISIS
1. Percobaan 1: LD SP, 18CF yang berarti memasukkan nilai 18CF ke register SP. PUSH BC lebih
mendahului PUSH DE sehingga urutan memasukkan datanya lebih dahulu nilai E dan D yang
kemudian dilanjutkan nilai C dan B.
2. Percobaan 2: LD SP, 18CBH yaitu memasukkan nilai 18CBH ke register SP. Pada memori diberi nilai
50, 30, 80, dan 70 pada alamat 18CB, 18CC, 18CD, 18CE yang kemudian nilai akan di POP yang
berhenti pada 18CF dan dimulai dari alamat 18CB. POP berarti mengambil nilai berurutan dari yang
paling akhir.
3. Percobaan 3: LD SP, 19AEH yaitu memasukkan nilai 19AEH ke register SP. Nilai dimulai dari PUSH
BC dan berikutnya adalah PUSH DE. Hal tersebut membuat nilai atau data yang diambil pertama
Dibuat oleh Dilarang memperbanyak sebagian atau seluruh isi Diperiksa
: dokumen tanpa ijin tertulis dari Fakultas Teknik oleh :
Universitas Negeri Yogyakarta
FAKULTAS TEKNIK UNIVERSITAS
NEGERI YOGYAKARTA
LAPORAN PRAKTEK MIKROPROSESOR
Semester PEMROGRAMAN DENGAN STACK POINTER 4 Jam
III Pertemuan
JOB 5

adalah nilai dari E dan D yang kemudian C dan B. Setelah nilai/data masuk ke dalam memori, maka
nilai/data tersebut akan di POP ke 16bit register dengan perintah POP. Dab didapatkan hasil nilai dari
reg IX adalah berurutan yaitu 2040H.
4. Percobaan 4: LD B, 05H yaitu memasukkan nilai 05H ke register B. Kemudian memasukkan data
1900H ke reg HL. Nilai akan di PUSH yaitu nilai BC. Data A akan dimainkan yaitu nilai dari alamat
1900H dimasukkan ke nilai A yang mana nilai A akan ditambah dengan nilai A lagi. B=03H yaitu nilai
B digunakan sebagai pembatas program karena terdapat DJNZ yaitu apabila nilai B belum=0, maka
akan di DECREMENT yang kemudian program akan lompat ke kali dan begitu seterusnya hingga =0.
Untuk logika pemrograman selanjutnya sebenarnya sama.
5. Percobaan 5: LD SP,1900H yaitu memasukkan nilai 1900H ke register SP. LD BC,1910H,
memasukkan nilai dari 1910H ke register BC. LD IX,1920H yaitu memasukkan nilai dari 1920H ke
register IX. PUSH BC dan PUSH IX berarti data akan dimulai terlebih dahulu dari IX dan kemudian
BC. Selanjutnya adalah POP yaitu mengambil data dari memori yang kemudian akan di masukkan ke
register HL dan juga IY.
6. Percobaan 6: LD SP,1820H yaitu memasukkan nilai 1820H ke register SP. LD BC,1900H,
memasukkan nilai dari 1900H ke register BC. LD IX, BCDAH yaitu memasukkan nilai dari BCDAH
ke register IX. PUSH BC dan PUSH IX berarti data akan dimulai terlebih dahulu dari IX dan kemudian
BC. Selanjutnya adalah POP yaitu mengambil data dari memori yang kemudian akan di masukkan ke
register HL dan juga IY.
7. Percobaan 7: Prinsip dari percobaan ke-7 ini sebenarnya mirip dengan percobaan ke-4. Prinsipnya
yaitu menggunakan fungsi lompatan untuk mendapatkan nilai yang diinginkan.

F. KESIMPULAN
Dapat disimpulkan bahwa pada fungsi perintah di z80 dapat dikombinasikan antara fungsi satu dengan
fungsi yang lainnya sehingga menjadi suatu program logika yang baik. Pada PUSH dan POP yaitu
PUSH sama-sama bekerja layaknya mengangkat piring yaitu pasti saat ditaruh paling akhir yaitu pada
bagian atas namun saat diambil pertama kali pasti juga piring paling atas (LIFO). Hal ini seperti PUSH
yaitu memasukkan nilai ke memori sedangkan POP berarti mengambil nilai/data dari memori. PUSH
dan POP ini merupakan cara komputer dalam bekerja yaitu dalam hal memroses data.

Dibuat oleh Dilarang memperbanyak sebagian atau seluruh isi Diperiksa


: dokumen tanpa ijin tertulis dari Fakultas Teknik oleh :
Universitas Negeri Yogyakarta

Anda mungkin juga menyukai