PERCOBAAN II
Oleh :
PARIDA
1925040008
S1
A. Tujuan Percobaan
1. Membiasakan para pemakai dengan instruksi arithmetik dan isntruksi
operasi logik.
2. Menjelaskan tentang mode addressing memory.
3. Menjelaskan tentang status flag
4. Menyusun data untuk register-register CPU dan bahan memory
B. Teori Dasar
1. Instruksi Arithmetik 8 bit dan instruksi operasi logic
Instruksi arithmetik 8 bit dan operasi-operasi logik dalam CPU Z80
dilaksanakan pada register A (Acumulator). Register-register A, B, C, D,
E, H, dan L dapat digunakan sebagai operand bersama-sama dengan
register A pada instruksi-instruksi LD. Jika data ditransfer antara memory
dan register A, address memory dapat ditunjukkan oleh register-register
HL, IX, atau IY. Dibawah ini terdapat instruksi arithmetik dan instruksi
operasi logik veserta artinya.
Status Flag
Setelah suatu operasi logik atau arithmetik selesai
dilaksanakan, hasilnya akan disimpan pada register A dan beberapa
status flag (Carry, overflow, change Sign, Yero result, Parity) juga
akan terpengaruh. Status flag ini akan disimpan dalam flip-flop di
CPU z8. flip-flop ini membentuk suatu register yang disebut flag
register. Data pada register ii dapat dipindahkan ke memory seperti
juga data pada register-register lain, dengan menggunakan
instruksi-instruksi khusus (instruksi PUSH). Beberapa status flag
diterangkan di bawah ini
a. Carry Flag
Carry flag ini akan berada dalamm keadaan set (1) bila
dalam operassi penjumlahan yang tidak diberi tanda (+ atau -)
hasil yang didapat lebih besar daripada bilangan 8 bit. Flag ini juga
berada dalam keadaan set apabila dalam operasi pengurangan,
terjadi peminjaman. Carry flag juga digunakan sebagai suatu syarat
untuk instruksi-instruksi ‘jump’, ‘call’, atau ‘return’. Flag ini juga
berfungsi sebagai penghubung yang penting dalaam operasi-operasi
arithmetik yang menggunakan lebih dari 1 byte. Tiga buah data 8
bit dapat dihubungkan sebagaai suatu data 24 bit dengan
menggunakan flag carry, empat data 8 bit dapat jugaa dihubungkan
sebagai data 32 bit.
b. Verlow / Parity Flag
Pada operasi arithmetik komplemen ke-dua yang
menggunakan tanda (dapat positif atau negatif), maka flag ini
berfungsi sebagai oferlow flag. Oferlow flag dalam Z80
menyatakan bahwa bilangan komplemen ke-dua yang bertanda
pada accumulator telah melebihi kapasitaas maximum (+127) atau
kurang dari kapasitas minimum (-128).
Ketika suatu operasi arithmetik dilaksanakan di dlam CPU
Z80, bilangan pada regoster A dapat dianggapp sebagaai data yang
tidak diberi tanda ( sampai 255) atau data yang bertanda (-123
sampai +127). Dengan demikian, baik carry flag maupun oferlow
flag dapat dpengaruhi oleh operasi arithmetik. Programmerlah yang
menetukan interpretasi mana yang diinginkan. Berikut ini ada;lah
operasi arithmetik dengan keterangan di sebelah kanannya.
Tabel 2.2
Operasi Arithmetik
Untuk operasi logik pada CPU Z80, flag ini =”1” bila hasil paritiy
8 bit di accumulator adalah genap. Flag ini sangat berguna dalam
memeriksa transmisi data. Karena carry dan overflow tidak akan
terjadi ddalam operasi-operasi logik, status paritiy dan overflow
dapat disimpan dalam flip-flop yang sama. Flip=flop ini disebut
P/V flag. Dengan memeriksa flip-flop ini, programmer dapat
memeriksa overflow setelah operasi-operasi arithmetik dan
memeriksa parity setelah operasi-operasi logik.
c. Zero (Nol) Flag
Jika register A sama dengan nol (zero) setelah operasi logik
atau arithmetik, dengan keadaan atau status ini akan dicatat di
dalam flip-flop yang disebut zero flag. Zero flag dapat digunakan
sebagai syarat untuk instruksi=instruksi percabangan, juga sangat
berguna dalam program ‘loop’.
d. Sign (tanda ) Flag
Jika bit yang paling kiri (bit 7) dari register A adalah 1
setelah operasi logik atau arithmetik, bilangan pada register A
diinterpretasikan sebagai bilangan negatif. Sign flag ini akan di-set
menjadi 1. flag ini akan diabaikan bila programmer telah
menunjuk datanya sebagai bilangan-bilangan tanpa tanda.
Flag-flag lain yang diraancang untuk arithmetik BCD
tidaklah penting bagi programmer. Format register yang dibentuk
oleh flag-flag ini terlihat seperti di bawah ini :
S Z P/V C
D. Langkah Percobaan
Percobaan berikut ini dapat dipakai untuk menjumlahkan isi
register D dan isi register E bersama-sama. Hasilnya akan disimpan
pada register HL. Masukkan program ini pada GMS-I dan kemudian
jalankan. Adapun langkah kerjanya adalah sebagai berikut :
Mencari object code tersebut (address awal 1800 H)
Lakukan pengisian pada register DE sesuai data pada tabel.
Dengan mereset terlebih dahulu data yang telah dimasukkan.
Kemudian tekan reg diikuti dengan menekan tombol DE.
Periksa isi register HL dengan menekan tombol reg. HL.
Catat hasil percobaan pada tabel 1. kemudian periksa register flag
dengan menekan reg kemudian diikuti .PNC untuk register low
(FL) dan reg SZH untuk register High (FH) masukkan hasilnya
pada tabel 1.
Analisa hasil percobaan dan buatlah kesimpulan.
E. Program Percobaan