Rabu, 08 Mei 2013

Instruksi Jump

INSTRUKSI JUMP DALAM MIKROPROSESOR Z-80

          Pada pertemuan sebelumnya telah kita bahas tentang instruksi-instruksi aritmetika dan logika dalam mikroprosesor Z-80 yang antara lain adalah instruksi ADD dan SUB, instruksi ADC dan SBC, instruksi INC dan DEC, instruksi DAA, instruksi CPL, instruksi NEG, instruksi CP, instruksi AND, OR dan XOR. Nah pada pertemuan yang keduapuluh satu kali ini kita lanjutkan dengan membahas tentang instruksi JUMP dalam mikroprosesor Z-80, untuk lebih memahami tentang instruksi JUMP sobat blogger dapat melakukan praktikum dengan mengikuti langkah kerja yang telah disebutkan dalam lembar kerja (jobsheet) di bawah ini.
          Dalam mikroprosesor Zilog Z-80 CPU instruksi-instruksi pencabangan adalah menggunakan instruksi JUMP. Instruksi JUMP membuat mikroprosesor menjadi perangkat yang sangat ampuh. Instruksi JUMP dapat dikategorikan menjadi empat kategori yaitu JUMP bersyarat, JUMP tanpa syarat, JUMP absolut dan JUMP relatif. Tapi dalam bahasan kali ini yang akan diuraikan hanya instruksi JUMP bersyarat dan instruksi JUMP tanpa syarat.

1. JUMP Bersyarat
         Jump bersyarat adalah jenis instruksi Jump yg bekerja melakukan lompatan atau kontinyu berdasarkan syarat yg diberikan. Mnemonik untuk lompatan bersyarat ada tiga :
Lompatan Absolut bersyarat : JP cc, nn : PC <--- nn.
Jika syarat cc terpenuhi.
Lompatan Relatif bersyarat : JR cc, n : PC <--- PC + e.
Jika syarat cc terpenuhi.
Lompatan Relatif bersyarat Khusus : DJNZ : B <--- B - 1.
Jika B = 0 kontinyu dan jika B <> 0 PC <--- PC + e.
          Syarat yang dimaksud untuk setiap perintah Jump terkait dengan kondisi bit status Flag dari satu step perintah sebelumnya. Ada 8 kemungkinan syarat yang dapat diberikan terkait dengan bit status flag. Kedelapan syarat itu dalam mikroprosesor dicatat dalam sebuah register yang disebut dengan register Flag. Untuk mikroprosesor Z-80 CPU susunan status dari register flag sebagai berikut :

Tabel Susunan Register Flag Z-80 CPU
S
Z
X
H
X
P/V
N
C

Makna masing-masing bit dari tanda status flag pada register F adalah sebagai berikut :
S (Sign) = 1 Menunjukkan hasil operasi aritmetika/logika sebelumnya bertanda negatif (b7 = 1) = 0 Menunjukkan hasil operasi aritmetika/logika sebelumnya bertanda positif (b7 = 0)
Z (Zerro) = 1 Menunjukkan hasil operasi aritmetika/logika sebelumnya bernilai nol = 0 Menunjukkan hasil operasi aritmetika/logika sebelumnya bernilai tidak nol
H (Half- = 1 Jika ada carry dari bit B3 ke bit B4 Carry) = 0 Jika tidak ada carry dari bit B3 ke bit B4
P/V(Parity = 1 Jika hasil operasi aritmetika/logika sebelumnya menunjukkan paritas ganjil atau terjadi Overflow Overflow) = 0 Jika hasil operasi aritmetika/logika sebelumnya menunjukkan paritas genap atau tidak terjadi Overflow
N (Non = 1 Operasi sebelumnya adalah operasi SUBTRACK/Pengurangan Carry) = 0 Operasi sebelumnya adalah operasi bukan SUBTRACK/Pengurangan
C (Carry) = 1 Jika operasi sebelumnya menghasilkan Carry atau borrow = 0 Jika operasi sebelumnya tidak menghasilkan Carry atau borrow
X : tidak digunakan.
          Pengambilan keputusan melompat atau kontinyu sebuah proses program terkait langsung dengan status flag register tersebut. Untuk memudahkan memahami terjadinya lompatan dapat digambarkan sebagai berikut :
Gambar 1. Instruksi JUMP

          JP NZ, nn mengandung makna jika hasil operasi sebelumnya tidak bernilai 0 atau nilai flag Z = 0 maka keputusan melompat dilaksanakan ke lokasi alamat absolut nn dimana nn adalah alamat 16 bit. Sebaliknya jika Z=1 maka program counter akan diteruskan atau kontinyu naik satu step tanpa lompatan.
          JR NZ, n mengandung makna jika hasil operasi sebelumnya tidak bernilai 0 atau nilai flag Z = 0 maka keputusan melompat dilaksanakan ke lokasi alamat relatif n dimana n adalah nilai relatif alamat yang dituju. Dan jika Z = 1 maka step program akan kontinyu ke satu langkan berikutnya.

2. JUMP Tanpa Syarat
          Jump tanpa syarat adalah jenis instruksi Jump yang bekerja melakukan lompatan atau kontinyu berdasarkan tanpa adanya syarat yang diberikan. Mnemonik untuk lompatan tanpa syarat ada dua yaitu :
Lompatan Absolut tanpa syarat : JP nn : PC nn
Instruksi ini memasukkan alamat memori nn ke register PC (Program Counter), sehingga meikroprosesor akan menjalankan instruksi yang ada pada lokasi alamat nn.
Lompatan Relatif tanpa syarat : JR e : PC PC + e
e adalah bilangan bertanda yang bernilai positif jika melompat maju ke alamat berikutnya dan bernilai negatif jika melompat ke belakang ke alamat sebelumnya.
          Nilai relatif lompatan dapat dihitung dengan rumus :
1. Jika melompatnya maju ke alamat di atasnya : n = d - ( S + 02 )
2. Juka melompatnya mundur ke alamat sebelumnya : n = ( S + 02 ) – d lalu dikomplemen duakan.
          Disamping Jump bersyarat masih ada tiga jenis Jump lainnya yaitu Jump Absolut berbasis register HL, IX, dan IY dengan mnemonic :
JP (HL) : PC <---- HL
- JP (IX) : PC  <---- IX
- JP (IY) : PC  <---- IY

Lembar Kerja
Alat dan Bahan :
1. Trainer MPF-1................................................................ 1 buah
2. Catu Daya  DC............................................................... 1 buah

Kesehatan dan Keselamatan Kerja :
1. Janganlah menghubungkan Trainer MPF-1 dengan sumber AC.
2. Ikuti semua petunjuk yang ada dalam modul kerja.
3. Gunakanlah sumber DC 9 VDC

Langkah Kerja :
Program Mengosongkan 100 Lokasi Memori
1. Persiapkan alat dan bahan yang diperlukan
2. Hubungkan  MPF-1 dengan sumber DC 9 V
3. Ketikkan ke dalam MPF-1 program sebagai berikut: :
4. Setelah program di atas dimasukkan ke dalam MPF-1, kemudian ekusilah (jalankan program).
5. Bacalah alamat 1900 sampai alamat 1963 akan tercatat data 00.
6. Ulangilah percobaan agar mendapat data yang benar.

Tidak ada komentar:

Posting Komentar