praktikum mikroprosesor Z80

21
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: 1

description

mengamati bagaimana pengalamatan pada mikroprosesor Z80

Transcript of praktikum mikroprosesor Z80

Page 1: 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

Page 2: praktikum mikroprosesor Z80

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.

Page 3: praktikum mikroprosesor Z80

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,

Page 4: praktikum mikroprosesor Z80

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.

Page 5: praktikum mikroprosesor Z80

5

Page 6: praktikum mikroprosesor Z80

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

Page 7: praktikum mikroprosesor Z80

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)

Page 8: praktikum mikroprosesor Z80

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

Page 9: praktikum mikroprosesor Z80

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.

Page 10: praktikum mikroprosesor Z80

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.

Page 11: praktikum mikroprosesor Z80

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.

Page 12: praktikum mikroprosesor Z80

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

…… …… ……… ;

…… …… ……… ;

…… …… ……… ;

…… …… ……… ;

…… …… ……… ;

…… …… ……… ;

Page 13: praktikum mikroprosesor Z80

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

Page 14: praktikum mikroprosesor Z80

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

Page 15: praktikum mikroprosesor Z80

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

Page 16: praktikum mikroprosesor Z80

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.