120821909-praktikum-mikroprosesor-Z80
-
Upload
edi-setiawan-amiruddin -
Category
Documents
-
view
151 -
download
14
description
Transcript of 120821909-praktikum-mikroprosesor-Z80
UNIT I
SISTEM MIKROPROSESOR-1
I. Tujuan Percobaan
1. Memepelajari dan mengetahui cara menggunakan MPF-I (Micro-
Profesor).
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:
Gambar pembagian register Z-80
1
2
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 two’s 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.
3
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,
4
misalnya isi register B dengan register B’. Perintah EX AF, AF’ digunakan
untuk menukar isi pasangan register AF dengan A’F’) 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 A, (1900) :mentransfer isi memori (1900) ke reg B
LD B, A :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 HL, 1900 :mengisimemori dengan alamat 1900 dengan
LD (HL), NN :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.
5
6
V. Lembar Kerja
A. Pengenalan sistem MPF-I
(Lihat MPF-I user’s 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. (Gunakan perintah 8-bit)
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
1800 3E 00 LD A, 00 ;isi reg A=0
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… FF RST 38h ;
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
7
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 register-
register 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)
8
VI. Lembar Data
C. Pengenalan sistem MPF-I
(Lihat MPF-I user’s 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.
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
1800 3E 00 LD A, 00 ;isi reg A=0
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… FF RST 38h ;
Isi register
Sebelumeksekusi
Sesudaheksekusi
Isi registe
r
Sebelumeksekusi
Sesudaheksekusi
A E
B H
C L
9
D
b. Mengisi register dengan data meggunakan perintah 16-bit.
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
1800 01 34 12 LD BC, 1234H ;isi reg A=0
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
Isi register
Sebelumeksekusi
Sesudaheksekusi
Isi registe
r
Sebelumeksekusi
Sesudaheksekusi
A E
B H
C L
D
2) Register Register
a. Mengisi dengan data dari register lain.
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
1800 01 34 12 LD BC, 1234H ;isi reg A=0
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
Isi register
Sebelumeksekusi
Sesudaheksekusi
Isi registe
r
Sebelumeksekusi
Sesudaheksekusi
A E
B H
C L
D
b. Mengisi register pasangan HL dari DE.
10
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
1800 01 34 12 LD BC, 1234H ;isi reg A=0
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
Isi register
Sebelumeksekusi
Sesudaheksekusi
Isi registe
r
Sebelumeksekusi
Sesudaheksekusi
A E
B H
C L
D
c. Mengisi register alternate dari register utama.
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
1800 01 34 12 LD BC, 1234H ;isi reg A=0
…… …… ……… ;
…… …… ……… ;
Isi register Sebelum eksekusi Sesudah eksekusi
AF
AF’
BC
BC’
DE
DE’
HL
HL’
3) Register Memori
a. Mengisi register dengan data dari register.
11
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
1800 01 34 12 LD BC, 1234H ;isi reg A=0
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
Isi register
Sebelumeksekusi
Sesudaheksekusi
Isi registe
r
Sebelumeksekusi
Sesudaheksekusi
1900 A
1901 B
1902 C
1903 D
1904 E
1905 H
1906 L
b. Mengisi pasangan register dengan data dari memori melalui perintah
16 bit.
12
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
1800 01 34 12 LD BC, 1234H ;isi reg A=0
…… …… ……… ;
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
Isi register
Sebelumeksekusi
Sesudaheksekusi
Isi registe
r
Sebelumeksekusi
Sesudaheksekusi
1A00 B
1A01 C
1A02 D
1A03 E
1A04 H
1A05 L
4) Memori Immediate
Mengisi memori dengan data melalui register penunjuk/pointer HL.
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
1800 01 34 12 LD BC, 1234H ;isi reg A=0
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
13
…… …… ……… ;
…… …… ……… ;
Isi register Sebelum eksekusi Sesudah eksekusi
1900
1901
1902
1903
5) Memori Register
a. Mengisi memori dengan data dari register, melalui perintah 8 bit.
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
1800 01 34 12 LD BC, 1234H ;isi reg A=0
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
Isi register
Sebelumeksekusi
Sesudaheksekusi
Isi registe
Sebelumeksekusi
Sesudaheksekusi
14
r
A 1B00
B 1B01
C 1B02
D 1B03
E 1B04
H 1B05
L 1B06
b. Mengisi memori dengan data dari register melalui perintah 16 bit.
AlamatMemori
Bhs. Mesin(HEX)
Bhs assembly Komentar
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
…… …… ……… ;
Isi register
Sebelumeksekusi
Sesudaheksekusi
Isi registe
r
Sebelumeksekusi
Sesudaheksekusi
D 1C00
E 1C01
H 1C02
L 1C03
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
15
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.
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
16
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.
Untuk pengalamatan register 8 bit hanya dapat dilakukan antar register 8 bit,
sedangkan untuk pengalamatan register 16 bit dilakukan antar pasangan
register.