• Tidak ada hasil yang ditemukan

Register pada Z-80

BAB III MIKROPROSESOR Z-80

3.1 Sistem Minimal Mikroprosesor

3.1.2 Register pada Z-80

Mikroprosesor Z - 80 memiliki dua set register yang dapat diprogram dan dua buah program status word. Pada satu saat, hanya satu set programmable register dan satu program status word yang dapat diakses. Di dalam CPU Z - 80 terdapat sebuah program counter 16-bit,(IX dan IY), sebuah interrupt vector 8-bit, dan sebuah refresh memori 8-bit. Tabel 3.1.memperlihatkan pengorganisasian register-register tersebut.

Terdapat dua set progam status word dalam prosesor Z - 80 yaitu utama (F) dan pilihan (F’), beserta register-register A,B,C,D,E,H,dan L. suatu instruksi tunggal pada CPU Z - 80 dapat menukar penggunaan atau isi dari kedua register tersebut.

Tabel 3.1. Konfigurasi Register Z - 80 Accumulator A Flag F Accumulator A’ Flag F’ B C B’ C’ D E D’ E’ H L H’ L’

Int. Vektor I Ref. Vektor R INDEX REGISTER IX INDEX REGISTER IY STACK POINTER SP PROGRAM COUNTER PC

Pada saat hanya satu instruksi tunggal yang dapat diakses. Dua buah register yaitu IX dan IY, yang besarnya 16-bit digunakan sebagai base register. Instruksi-instruksi tunggal tersebut adalah EX (SP),HL,EX (SP),IX, EX (SP),HL, EX AF,AF’, EX DE, HL.

Program status word ini juga dikenal dengan register bendera (flag register). Register ini sangat berperan dalam operasi-operasi aritmatika, logika dan juga sebagai kondisi untuk syarat program (jump dan branch). Format dari program status word tersebut dapat digambarkan seperti pada tabel 3.2. dibawah. setelah operasi logika atau aritmatika selesai dilaksanakan, hasilnya akan disimpan di register A yang juga akan mempengaruhi kedudukan register bendera (register F).

Tabel 3.2. Format Program Status Word (Register Bendera)

7 6 5 4 3 2 1 0

Isi register juga dapat dipindahkan ke memori dengan instruksi khusus (PUSH instruksion). Tidak semua status dari register bendera ini sering digunakan dalam suatu operasi umum. Adapun status-status yang sering digunakan adalah sebagai berikut :

a. Carry flag

Carry flag digunakan untuk menguji apakah suatu operasi penjumlahan/ pengurangan menghasilkan carry/borrow. Selain itu, digunakan sebagai bit ke-19 bagi operasi instruksi Shiff dan Rotate. Carry flag juga dapat digunakan sabagai kondisi untuk instruksi jump, return, dan call.

b. Over flow/Parity flag

Merupakan dua buah flag yang mempunyai dua fungsi yang berbeda. Parity (P) = 0, bila jumlah bit benilai 1 (high) ganjil, dan P = 1, bila bila jumlah bit bernilai 1 (high) genap.

Over flow digunakan untuk mendeteksi pada operasi penjumlahan/ pengurangan, apakah telah terjadi over flow setelah mencapai bilangan positif terbesar (+ 127) atau mengalami over flow setelah mencapai bilangan negatif terbesar (- 128). Over flow bernilai V = 1, bila terjadi over flow atau sebaliknya.

Tabel 3.3. Arti bit-bit dari program status

Bit Nama flag Logika Katerangan

0 C : Carry

0 1

Operasi tanpa carry Operasi dengan carry

1 N : Non carry

0 1

Operasi bukan subtract Operasi adalah subtract

2 P/V : Parity/Over flow 0 1

Parity even tidak terjadi over flow Parity odd tidak terjadi over flow 3 Tidak digunkan - ---

4 H : Half carry

0 1

Tidak terjadi carry pada bit 4 register A Terjadi carry pada bit 4 register A 5 Tidak digunakan - ---

6 Z : Zero

0 1

Hasil operasi bukan 0 Hasil operasi 0

7 S : Sigh

0 1

Hasil operasi plus Hasil operasi minus

c. Zero flag

Adalah flag yang menunjukkan apakah harga bit yang tengah dihitung atau sedang ditransfer adalah 0. Bila ‘ya’ maka nilai flag ini akan bernilai Z = 1. Selain itu juga sering dipakai untuk mendeteksi apakah nilai yang dibandingkan sama besarnya.

d. Sigh flag

Adalah flag yang mencerminkan nilai bit yang paling signifikan (bit 7). Setelah mikroprosesor melakukan suatu instruksi. Pada notasi two’s

complemnts = 0, bila bilangan ALU adalah positif dan sebaliknya. Pada tabel 3.1. diatas diberikan sebuah gambaran secara umum tentang arti dari bit-bit pada program status word setelah suatu operasi.

Dilihat dari segi pemprograman, mikroprosesor Z - 80 memiliki dua set register yang dapat diprogram dan dua buah program status word (PSW). Pada suatu saat, hanya dapat diprogram satu set register serta sebuah PSW. Selain itu, Z - 80 juga memiliki sebuah program counter 16-bit. Stack pointer 16-bit, dua buah indeks register, interrupt vector register 8-bit, dan refresh memori register 8-bit. Pada gambar 2.3. diatas diperlihatkan susunan register dari Z-80. Sedangkan kegunaan umum dari register-register tersebut adalah sebagai berikut :

a. Fungsi Umum dari Register-Register pada Z-80 1. Akumulator

Merupakan pusat dari pemproses data yang juga merupakan tempat salah satu operand dan tempat tujuan dari hasil operasi aritmatika, logika dan operasi lainnya.

2. Register HL

Merupakan register dari alamat memori utama. Beberapa instruksi seringkali merujuk pada data yang alamatnya ditunjuk oleh register ini, yang dilambangkan dengan HL.

3. Register DE

Pasangan register DE adalah merupakan register dari alamat memori sekunder. Pemrogram, dapat menukar isi register HL dengan menggunakan instruksi EX, DE ,HL.

4. Register B ,C dan BC

Register-register ini merupakan register serbaguna (multi purpose) yang fungsi utamanya adalah sebagai penghitung (counter) dan sebagai penyimpan data sementara. Register B sering digunakan sebagai penghitung loop, karena memiliki fungsi khusus pada instruksi DJNZ.

5. Register Index dan IY

Register index digunakan apabila pemprogram menunjuk alamat memori dengan suatu offset atau pemindahan yang tetap dari suatu referensi variable. Register ini dapat pula membantu register GHL jika pasangan register HL telah terisi.

b. Fungsi Khusus Register-Register pada Z-80

Fungsi-fungsi khusus yang dapat dilaksanakan oleh masing-masing register pada Z-80 adalah sebagai berikut:

1. Akumulator

Register ini adalah satu-satunya register yang dapat diisi dan dipindahkan isinya secara langsung melalui masukan dan keluaran port. Akumulator juga merupakan satu-satunya register yang isinya dapat digeser, dikomplement, diatur letak desimalnya, atau dinegasi dengan instruksi satu byte. Selain itu akumulator dapat diisi dan dipindahkan dari atau ke memori yang alamatnya ditunjuk pada pasangan register BC atau DE. Register ini juga merupakan tempat asal dan tujuan dari semua operasi aritmatika dan logika 8 bit, kecuali pada perintah DCE dan INC.

2. Register HL

Register ini dapat digunakan secara tidak langsung pada instruksi-instruksi ADC, ADD, AND, CMP, DEC, INC, OR, SUB, dan XOR. Register HL merupakan tempat dan tujuan bagi instruksi-instruksi ADD HL, ADC HL, dan SBC HL. Pasangan register ini dapat ditukar isinya dengan pasangan register DE atau dengan isi register stack teratas. Isi register HL dapat dipindahkan ke dalam stack pointer dengan instruksi LD SP, HL atau kedalam program counter dengan instruksi JP (HL). Register HL dapat juga digeser isinya dengn instruksi satu byte, yaitu dengan instruksi ADD HL. Pasangan register HL dengan otomatis akan digunakan sebagai register alamat asal dari data dalam operasi pemindahan blok, pembanding blok dan pengeluaran data satu blok.

3. Register DE

Pasangan register DE adalah merupakan satu-satunya pasangan register yang isinya dapat saling menggantiakn dengan isi register HL melalui perintah EX DE, HL. Register ini secara otomatis akan berfungsi sebagai register dari alamat tujuan operasi pada operasi pemindahan blok.

4. Register BC

Pasangan register BC secara otomatis akan berfungsi sebagai penghitung pada operasi pemindahan blok dan pembanding blok seperti pada instruksi CPIR atau LDIR.

5. Register B

Register B secara otomatis akan berfungsi sebagai penghitung pada instruksi DJNZ, serta instruksi pemasukan dan pengeluaran blok.

6. Register C

Register ini merupakan satu-satunya register yang dapat berfungsi sebagai alamat port pada operasi pemasukan dan pengeluaran data, yaitu dengan instruksi IN reg (C) atau OUT (C), reg.

7. Register Index IX dan IY

Register IX dan IY merupakan register yang berfungsi pada pengalamatan index (index addersing) dengan (IX + d). Artinya alamat memori ditunjuk oleh IX dan d, atau oleh IT dan d (d = displacent). Selain itu register IX dan IY juga berfungsi sebagai alamat asal data dan alamat hasil dari operasi ADD IX, rp atau ADD IY,rp dimana rp adalah pasangan register. Isi register IX dan IY dapat ditukar dengan isi stack teratas, dipindahkan ke dalam stack pointer atau program counter.

8. Stack pointer

Stack pointer secara otomatis akan bertambah satu jika terjadi operasi pengambilan data dari stack dan berkurang satu sebelum instruksi penyimpanan data ke stack dijalankan. Stack pointer adalah satu-satunya register alamat yang dapat digunakan untuk trasfer pasangan register lain dari atau kedalam memori melalui instruksi POP dan PUSH. Dapat pula mentransfer progam counter dari atau kedalam memori dengan menggunkan instruksi CALL dan RETURN.

9. Program Counter (PC)

Sebelum program dijalankan, program counter (register PC) harus mencatat alamat awal letak kode instruksi pertama suatu program. Secara otomatis bertahap satu persatu PC mencatat laju ke alamat berikutnya.

Selain diketahui fungsi-fungsi umum dan khusus dari setiap register dan pasangan-pasangan register yang terdapat dalam CPU Z-80, untuk dapat melakukan penyusunan suatu program maka perlu untuk mengetahui bahasa mesin dari Z-80 yang lazim dipakai pada kebanyakan mikroprosesor keluaran zilog inc.

Dokumen terkait