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