Anda di halaman 1dari 16

UNIT I SISTEM MIKROPROSESOR-1

I. Tujuan Percobaan 1. Memepelajari dan mengetahui cara menggunakan MPF-I (MicroProfesor). 2. Mempelajari register-register dalam mikroprosesor dan proses

pentransferan data. 3. Mempelajari pemrograman bahasa assembly dan bahasa mesin untuk metransfer data dengan mikroprosesor Z-80. II. Alat dan Bahan 1. Mikroprosesor MPF-I. 2. Penyedia daya (power supply). III. Dasar Teori Mikroprosesor Z-80 merupakan penyempurnaan mikroprosesor 8080 ataupun 8085 buatan Intel. Salah satu bagian terpenting dari arsitektur Z-80 adalah register-register yang pembagiannya dapat diilustrasikan sebagai berikut:
S B D H S B D H Z Ac Z Ac A C E L P/V N C Alternate A C E L SP (Stack Pointer) PC (Program Counter) IX (Index Register) IY (Index Register) I (Interrupt Vector Register) R (Refresh Register) P/V N C Flag Accumulator Secondary Data Counter Prim. Data Counter

Secondary Accumulator

Alternate

Gambar pembagian register Z-80

Register pada Z-80 dapat dikelompokkan menjadi 4, yaitu: register A (accumulator), register F (flag status), register serbaguna dan register khusus (special purpose register). Register serbaguna terdiri dari 12 register 8-bit yang terbagi menjadi 2 bagian, yaitu register serbaguna utama: register B, C, D, E, H, L dan register serbaguna pengganti (alternate): B, C, D, E, H, L. Register pengganti, baik register serbaguna maupun register lainnya, digunakan untuk mengamankan isi (sementara) register-register utama pasangannya. Pasangan register B dan C, D dan E, H dan L, serta pasangan register penggantinya dapat membentuk register 16-bit. Register A atau disebut akumulator merupakan penyimpan utama (primer) pada Z-80. Transfer data antara CPU dengan piranti I/O yang tercepat dan tersingkat terselenggara melalui register ini. Apabila akumulator telah selesai menyelenggarakan operasi hitung dan nalar, status dari hasil perhitungan akan dicatat di register F. Register bendera terdiri dari 8-bit, 2 bit tidak digunakan, sehingga hanya 6 kondisi yang dicatat (lihat gambar 1). Bendera-bendera yang terdapat pada Z-80 adalah sebagai berikut: Bendera tanda (S, Sign): bernilai 1 apabila angka yang berada pada akumulator bernilai negatif, dan sebaliknya. Bendera nol (Z, Zero) bendera ini bernilai 1 apabila semua bit dalam akumulator bernilai nol, dan sebaliknya. Bendera pindahan bit 3 (Ac, Auxiliary Carry): bendera ini akan memberi tanda adanya perpindahan atau pinjaman pada proses penjumlahan atau pengurangan (pada 4 bit terendah). Bendera P/V (Parity/Overflow) paritas akan diset bernilai 1 apabila hasil operasi nalar bernilai genap dan bendera overflow hanya digunakan sebagai tanda penggunaan operasi twos complement dan menunjukkan adanya bawaan dari bit-6 ke bit-7. Bendera pengurangan (N): Bila terjadi operasi pengurangan, bendera akan bernilai 1 dan sebaliknya.

Bendera pindahan (C, Carry) bendera ini menunjukkan terjadinya pindahan bit MSB dari suatu register. Bendera akan diset 1 apabila terjadi pemindahan. Register PC (16 bit) berisi alamat perintah selanjutnya pada memori yang

akan dilaksanakan oleh CPU. Register SP atau register penunjuk tumpukan menyediakan alamat untuk kembali setelah CPU melaksanakan operasi percabangan. Penunjuk tumpukan ini bekerja berdasarkan prinsip LIFO (Last In First Out) yaitu data yang paling akhir masuk dalam tumpukan merupakan data yang paling awal dikeluarkan dari tumpukan. Register IX dan IY digunakan untuk menyediakan alamat awal 16-bit pada mode pengalamatan berindeks. Register R digunakan apabila mikroprosesor menggunakan memori dinamis. Register alamat interupsi (I) digunakan apabila CPU akan memasuki subroutine interupsi. Dalam melaksanakan transfer data pada Z-80, selain bahasa assembly, juga digunakan instruksi dalam bahasa mesin yang dinotasikan dalam bilangan heksadesimal dan terdiri dari 2 bagian: OPCODE menunjukkan kode operasi yang diinginkan dan OPERAND atau alamat OPERAND menunjukkan nilai bilangan atau isi suatu memori. Contoh: LD A, 12 ----3E 12 (bahasa mesin) 3E: OPCODE; 12: OPERAND

Ada beberapa macam transfer data atau pengiriman/pemasukan data yang dapat dilaksanakan pada Z-80 tergantung dari asal data dan tujuan datanya, yaitu: Dari register ke register Perpindahan data dari register ke register lainnya, dapat berlangsung antar register serbaguna atau dengan akumulator. Besar data yang dipindahkan bisa berupa data 8-bit maupun 16-bit. Contoh: LD A, B :perpindahan data dari register B ke register A (8-bit). LD BC, HL :perpindahan data 16-bit dari pasangan register HL ke pasangan register BC (register B dan H mewakili byte orde tinggi).

Untuk mentransfer data dari register ke register lainnya dapat juga menggunakan perintah EXX, EX AF, AF , PUSH, POP. Perintah EXX digunakan untuk menukar isi register dengan isi register penggantinya, misalnya isi register B dengan register B. Perintah EX AF, AF digunakan untuk menukar isi pasangan register AF dengan AF) perintah PUSH berarti menempatkan data atau isi suatu register ke tumpukan, sedangkan POP mengeluarkan data atau isi paling atas tumpukan ke register. Dari memori ke register Perpindahan data dari memori tertentu ke salah satu register serbaguna maupun akumulator. Transfer isi alamat memori hanya dapat melalui akumulator (reg A). Contoh: LD LD A, (1900) B, A :mentransfer isi memori (1900) ke reg B :melalui register A.

Dari immediate (langsung) ke register Nilai data diisikan ke register secara langsung (dari luar). Contoh: LD A, N :mengisi register A dengan bilangan N.

Dari langsung ke memori Nilai data diisikan ke register secara langsung (dari luar). Contoh: LD LD HL, 1900 (HL), NN :mengisimemori dengan alamat 1900 dengan :data NN.

Dari register ke memori Dari memori ke memori

IV. Cara Kerja 1. Menulis program bahasa assembly menurut lembar praktikum kemudian: diubah ke dalam bahasa mesin. Setiap akhir program harus diakhiri dengan perintah RTS p. 2. Masukkan instruksi-instruksi bahasa mesin tersebut ke dalam MPF-I. 3. Memeriksa apakah program sudah benar dan melihat isi register dan memori sebelum program dieksekusi.

4. Mengeksekusi program dengan menekan tombol RST-PC-GO dan melihat hasil eksekusi pada tampilan. 5. Mencatat data-data yang diminta dari lembar praktikum.

V. Lembar Kerja A. Pengenalan sistem MPF-I (Lihat MPF-I users manual) Kenali setiap tombol CPU Peta memori : ROM (Program Monitor) : RAM (Untuk User) Peta I/O : PPI (Programmable Parallel Interface 8255) : PIO (Parallel Input Output) : CTC (Counter Timer Controller) B. Transfer data 1) Register Immediate a. Tulis program assembly untuk mengisi data ke register-register: A=0, B=1, C=2, D=4, H=5, L=6.
Alamat Memori 1800 Bhs. Mesin (HEX) 3E 00 FF

(Gunakan perintah 8-bit)


Bhs assembly LD A, 00 RST 38h Komentar ;isi reg A=0 ; ; ; ; ; ; ; ;

Lihat isi register-register sebelum dan sesudah program dieksekusi. b. Tulis program assembly untuk mengisi data ke register-register: B=12, C=34, D=56, E=78, H=9, L=0. (Gunakan perintah 16-bit) Lihat isi register-register sebelum dan sesudah program dieksekusi. 2) Register Register a. Tulis program assembly untuk memindahkan dari register: B ke C, D ke E, dan H ke L. Diisi dahulu register A=12, B=34, D=56, H=78.

b. Tulis program untuk memindahkan data dari pasangan register DE ke HL. Diisi dahulu register DE=0605. c. Tulis program untuk mengisi register Alternate A, B, C, D, E, H, L, diisi dari register-register A, B, C, D, E, H, L. (Menggunakan perintah EXX). 3) Register Memori a. Tulis program untuk mengisi register-register A, B, C, D, E, H, L, dari isi memori alamat (1900h), (1901h), (1902h), (1903h), (1904h), (1905h) dan (1906h). Diisi dahulu memori tersebut dengan data 12h, 34h, 56h, 78h, 9Ah, BCh dan DEh. b. Tulis program untuk mengisi pasangan register BC, DE dan HL dari isi memori alamat (1A00h), (1A02h), (1A03h), (1A04h), (1A02h) dan (1A05h). Diisi dahulu memori tersebut dengan data CBh, A9h, 87h, 65h, 43h dan 21h. 4) Register Immediate Tulis program untuk mengisi memori (1900h), (1901h), (1902h), (1903h) melalui register HL (sebagai penunjuk alamat/pointer). Dengan data FAh, FBh, FCh dan FDh. 5) Register Immediate a. Tulis program untuk mengisi memori yang beralamat (1B00h), (1B01h), (1B02h), (1B03h), (1B04h), (1B05h), (1B06h), dari registerregister A, B, C, D, E, H, L. Diisi dahulu register tersebut dengan data 01h, 02h, 03h, 04h, 05h, 06h dan 07h. (Gunakan perintah 16-bit)

b. Tulis program untuk mengisi memori yang beralamat (1C00h), (1C01h), (1C02h) dan (1C03h) dari pasangan register tersebut dengan data 8765h dan 4321h. (Gunakan perintah 16-bit)

VI. Lembar Data C. Pengenalan sistem MPF-I (Lihat MPF-I users manual) Kenali setiap tombol CPU Peta memori : ROM (Program Monitor) : RAM (Untuk User) Peta I/O : PPI (Programmable Parallel Interface 8255) : PIO (Parallel Input Output) : CTC (Counter Timer Controller) D. Transfer data 1) Register Immediate a. Mengisi register dengan data meggunakan perintah 8-bit.
Alamat Memori 1800 Bhs. Mesin (HEX) 3E 00 FF Bhs assembly LD A, 00 RST 38h Komentar ;isi reg A=0 ; ; ; ; ; ; ; ;

Isi register A B C D

Sebelum eksekusi

Sesudah eksekusi

Isi register E H L

Sebelum eksekusi

Sesudah eksekusi

b. Mengisi register dengan data meggunakan perintah 16-bit.


Alamat Memori 1800 Bhs. Mesin (HEX) 01 34 12 Bhs assembly LD BC, 1234H Komentar ;isi reg A=0 ; ; ;

Isi register A B C D

Sebelum eksekusi

Sesudah eksekusi

Isi register E H L

Sebelum eksekusi

Sesudah eksekusi

2) Register Register a. Mengisi dengan data dari register lain.


Alamat Memori 1800 Bhs. Mesin (HEX) 01 34 12 Bhs assembly LD BC, 1234H Komentar ;isi reg A=0 ; ; ;

Isi register A B C D

Sebelum eksekusi

Sesudah eksekusi

Isi register E H L

Sebelum eksekusi

Sesudah eksekusi

b. Mengisi register pasangan HL dari DE.


Alamat Memori 1800 Bhs. Mesin (HEX) 01 34 12 Bhs assembly LD BC, 1234H Komentar ;isi reg A=0

10

Alamat Memori

Bhs. Mesin (HEX)

Bhs assembly

Komentar ; ; ;

Isi register A B C D

Sebelum eksekusi

Sesudah eksekusi

Isi register E H L

Sebelum eksekusi

Sesudah eksekusi

c. Mengisi register alternate dari register utama.


Alamat Memori 1800 Bhs. Mesin (HEX) 01 34 12 Bhs assembly LD BC, 1234H Komentar ;isi reg A=0 ; ;

Isi register AF AF BC BC DE DE HL HL

Sebelum eksekusi

Sesudah eksekusi

3) Register Memori a. Mengisi register dengan data dari register.


Alamat Memori 1800 Bhs. Mesin (HEX) 01 34 12 Bhs assembly LD BC, 1234H Komentar ;isi reg A=0

11

Alamat Memori

Bhs. Mesin (HEX)

Bhs assembly

Komentar ; ; ; ; ; ; ; ; ; ; ; ; ;

Isi register 1900 1901 1902 1903 1904 1905 1906

Sebelum eksekusi

Sesudah eksekusi

Isi register A B C D E H L

Sebelum eksekusi

Sesudah eksekusi

b. Mengisi pasangan register dengan data dari memori melalui perintah 16 bit.
Alamat Memori 1800 Bhs. Mesin (HEX) 01 34 12 Bhs assembly LD BC, 1234H Komentar ;isi reg A=0 ;

12

Alamat Memori

Bhs. Mesin (HEX)

Bhs assembly

Komentar ; ; ; ; ;

Isi register 1A00 1A01 1A02 1A03 1A04 1A05

Sebelum eksekusi

Sesudah eksekusi

Isi register B C D E H L

Sebelum eksekusi

Sesudah eksekusi

4) Memori Immediate Mengisi memori dengan data melalui register penunjuk/pointer HL.
Alamat Memori 1800 Bhs. Mesin (HEX) 01 34 12 Bhs assembly LD BC, 1234H Komentar ;isi reg A=0 ; ; ; ; ; ; ; ;

13

Isi register 1900 1901 1902 1903

Sebelum eksekusi

Sesudah eksekusi

5) Memori Register a. Mengisi memori dengan data dari register, melalui perintah 8 bit.
Alamat Memori 1800 Bhs. Mesin (HEX) 01 34 12 Bhs assembly LD BC, 1234H Komentar ;isi reg A=0 ; ; ; ; ; ; ; ; ; ; ; ; ;

Isi register A B C D E H L

Sebelum eksekusi

Sesudah eksekusi

Isi register 1B00 1B01 1B02 1B03 1B04 1B05 1B06

Sebelum eksekusi

Sesudah eksekusi

14

b. Mengisi memori dengan data dari register melalui perintah 16 bit.


Alamat Memori Bhs. Mesin (HEX) Bhs assembly Komentar ; ; ; ;

Isi register D E H L

Sebelum eksekusi

Sesudah eksekusi

Isi register 1C00 1C01 1C02 1C03

Sebelum eksekusi

Sesudah eksekusi

VII. Analisa Hasil percobaan yang diamati melalui tampilan 7-segmen pada MPF-I menunjukkan bahwa semua operasi pemberian data dapat dilakukan dengan baik, yang meliputi: Register Immediate Pemberian data immediate ke register merupakan model pengalamatan segera. Untuk register tunggal dilakukan dengan perintah 8-bit, sedangkan untuk pasangan register dilakukan melalui perintah 16-bit yang merupakan pengalamatan segera diperluas. Pada pengalamatan ini data yang diisikan menjadi bagian dari syntax program yang ditulis. Register Register Pemberian data dari regsiter ke register merupakan model pengalamatan register. Berapapun data yang ada di register asal diberikan ke register tujuan, dengan demikian data yang akan diberikan tidak menjadi bagian dari syntax progam yang harus ditulis. Untuk register tunggal dilakukan dengan perintah 8-bit, sedangkan untuk pasangan register dilakukan melalui perintah 16-bit.

15

Register Memori Pemberian data dari memori ke register merupakan model pengalamatan langsung. Seperti halnya pengalamatan register, data yang akan diisikan tidak menjadi bagian dari syntax program. Pengalamatan dari memori ke register dapat dilakukan untuk 8 atau 16 bit. Alamat memori asal data menjadi bagian dari syntax program yang ditulis.

Memori Immediate Pemberian data immediate ke memori merupakan model pengalamatan tidak langsung. Alamat memori yang akan diisi data menjadi bagian dari syntax program yang ditulis. Alamat tersebut diisikan ke register penunjuk, selanjutnya data 8 bit diisikan ke alamat yang ditunjukkan oleh register penunjuk.

Memori Register Pemberian data dari register ke memori merupakan model pengalamatan langsung. Seperti halnya pengalamatan register, data yang akan diisikan tidak menjadi bagian dari syntax program. Pengalamatan dari register ke memori dapat dilakukan untuk 8 atau 16 bit. Alamat memori tujuan data menjadi bagian dari syntax program yang ditulis.

VIII. Kesimpulan Mikroprosesor Z80 mengenal semua mode pengalamatan, pada prktikum ini dilakukan percobaan untuk pengalamatan segera atau immediate,

pengalamatan langsung dan pengalamatan register. Untuk mode pengalamatan immediate, baik 8 bit atau 16 bit dilakukan dengan menuliskan data yang akan disikan menjadi bagian dari syntax program. Pengalamatan immediate hanya dapat dilakukan untuk register dan pasangan register, data immediate tidak dapat diberikan ke suatu lokasi memori. Data immediate dituliskan tanpa menggunakan tanda kurung. Untuk pengalamatan langsung, baik 8 bit atau 16 bit dilakukan dengan menuliskan alamat memori tempat asal atau tujuan data menjadi bagian dari syntax program. Alamat memori dituliskan didalam tanda kurung.

16

Untuk pengalamatan register 8 bit hanya dapat dilakukan antar register 8 bit, sedangkan untuk pengalamatan register 16 bit dilakukan antar pasangan register.