micro 2
DESCRIPTION
microTRANSCRIPT
LAPORAN PRAKTIKUMInstruksi Aritmatika dan Operasi LogikaPraktek Mikroprosesor 1Job Sheet 2
Nama
:DENNY SETIAWANNIM
:3201311036Kelas
:V BKelompok
:1
Anggota Kelompok: Denny Setiawan
Ranto susilo
Isah
Andi
Rintis Sanjaya
LABORATORIUM TEKNIK ELEKTRONIKA JURUSAN TEKNIK ELEKTROPOLITEKNIK NEGERI PONTIANAK2015
Instruksi Aritmatika dan Operasi LogikaI . Tujuan
Tujuan dari praktikan yang dilakukan, diharapkan mahasiswa dapat :
Memahami fungsi dari flag register pada mikroprosesor Z-80
Memahami instruksi-instruksi aritmatika seperti penjumlahan, pengurangan dan lain sebagainya.
Memahami instruksi-instruksi operasi logika seperti AND, XOR, RR, RL dan lain sebagainyaII. a. Tugas Pendahuluan1. Flag Register pada Z-80 berisi Carry flag, Negative flag, Parity/Overflow flag, Auxiliary carry flag, Zero flag dan Sign flag. Sebutkan fungsi dari masing-masing bagian flag register tersebut ?
Jawab:
Carry Flag (CF) akan meng 'set' (menjadi logika '1', tinggi), apabila terjadi 'bawaan' (carry) atau 'pinjaman' (borrow) dalam suatu hasil proses perhitungan (arithmetic) pada Most Significant Bit (MSB, bit paling berbobot). Jika hal-hal itu tidak terjadi maka CF akan 'reset' (logika '0', rendah). Kalau dalam suatu instruksi, terjadi hasil yang menunjukkan bahwa sistem pengecekan paritas adalah 'paritas genap' (even parity), maka PF akan 'set'. Bila yang terjadi 'paritas ganjil' (odd parity), PF akan me'reset'.Overflow Flag, berguna untuk menunjukkan bahwa telah terjadi 'overflow' yaitu jumlah bit sebagai hasil suatu proses perhitungan telah melampaui batas yang diperkenankan. Mikroprosesor 8088 mempunyai kemampuan untuk bekerja dalam mode 'langkah tunggal' (single-step), yaitu semua instruksi dilaksanakan dengan cara satu demi satu. Mode ini dimungkinkan dengan jalan membuat TF (Trap Flag) masuk ke logika '1' atau 'set'. Bagi seorang programmer, mode ini akan sangat berguna dalam pekerjaan 'debugging'.Auxiliary Carry Flag dipakai untuk menunjukkan hasil perhitungan pada byte rendah dari suatu bilangan binary 16 bit. Jika terjadi 'bawaan' atau 'pinjaman' dari nibble bawah (low nibble) ke nibble atas (high nibble), .AF akan 'set', sebaliknya AF akan di 'reset'. Zero Flag akan 'set' kalaudalam suatu proses perhitungan di hasilkan nilai nol. Bila hasilnya bukan nol, ZF akan 'reset'.Sign Flag adalah bit yang akan mendeteksi suatu bilangan sebagai bilangan positif atau bilangan negatif. Hal ini dilakukan dengan melihat MSB dari bilangan tersebut. Apabila MSB menunjukkan nilai '1' (set), maka bilangan itu adalah negatif, jika '0' (reset), bilangan positif.2. Apa saja yang termasuk instruksi aritmatika, sebutkan masing-masing kegunaannya Jawab: Instruksi ADD digunakan untukmelakukan operasi penjumlahan 8 bit dan 16 bit.
Instruksi SUB digunakan hanya untuk melakukan operasi pengurangan 8 bit.Instruksi ADC digunakan untuk menambahkan isi register A dengan data 8 bit yang berada pada suatu register atau data immediate atau data suatu lokasi memori dan mengikut sertakan bit Carry (C) yang ada di register F.Instruksi SBC digunakan untuk mengurangkan isi register A dengan data 8 bit yang berada pada suatu register atau data immediate atau data suatu lokasi memori dengan mengikutsertakan bit carry flag.3. Apa saja yang termasuk instruksi operasi logika, sebutkan masing-masing kegunaannya ?
Jawab:Instruksi AND, OR, dan XOR digunakan untuk melakukan operasi logika isi dari akumulator terhadap data suatu register 8 bit atau data immediate, atau data suatu lokasi memori.Simbol operasi Logika adalah sbb :
4. Anggap memori yang berada dilokasi 40h berisi data operand 6Ah. Tentukan hasil dari memori yang beralamat di 41h, bila source program seperti dibawah ini :
LD A, (40H)
CPL
LD (41H), A
RST 08H
Jawab:Hasil dari memori yang beralamat di 41h adalah 64h
5. Sample Problem :
(0040) = 38
(0041) = 2B
(0042) = 63?
Source Program :
LD A, (40H)
LD B, A
LD A, (41H)
ADD A, B
LD (42H), A
RST 08H
Jawab: (0042) = 63
III. Alat dan BahanTraining Kit MTS-80A
IV. Prosedur Percobaan
Percobaan 11. Buatlah program dibawah ini dengan mengkonversi terlebih dahulu kode mnemonic kedalam kode machine.
LD SP, 9000H
AND A
LD B, 09H
LD A, 0FFH
INC A
ADC A, B
XOR A
ADD A, B
ADD A, 88H
SCF
SBC A, 33H
SUB 25H
RST 08H
2. Cek listing program saudara dengan menekan tombol reset. Kemudian tekan tombol step, begitu seterusnya sampai dengan instruksi RST 08H.3. Isilah tabel 1 sebagai prediksi isi akumulator dan keadaan status flag register pada masing-masing instruksi yang ada.4. isi register A dengan 00 dan register B dengan 00 dengan menekan tombol RESET, REG, 0, 0, 0, F, F. Selanjutnya tekan lagi tombol REG, 1, 0, 0, F, F.5. Isi tabel 2 dari hasil percobaan yang telah saudara lakukan dengan melakukan eksekusi program step by step dengan memanfaatkan fungsi tombol STEP dan amati perubahan register dengan menekan tombol REG (menampilkan posisi Program Counter, Stack Pointer dan keadaan flag register pada saat ini) kemudan tekan tombol INC (mengecek isi register). V. Tabel DataTabel 1Prediksi
AlamatMenemonicRegisterFlag
ABSZHVNC
8000LD SP,90000000111111
8003AND A
8004LDB,09H
8006LD A, 0FFH
8008INC A
8009ADC A,B
800AXOR A
800BADD A,B
800CADD A,88H
800ESCF
8011SBC A,33H
8013SUB 25H
8015RST 08H
Tabel 2
Hasil Eksekusi Program
AlamatMenemonicRegisterFlag
ABSZHVNC
8000LD SP,90000000111111
8003AND A
8004LD B,09H
8006LD A, 0FFH
8008INC A
8009ADC A,B
800AXOR A
800BADD A,B
800CADD A,88H
800ESCF
8011SBC A,33H
8013SUB 25H
8015RST 08H
IV. Analisa Data
1. Buat tabel konversi dari kode mnemonic ke code machine sesuai listing program yang ada pada percobaan 1 ?
2. Jelaskan maksud dari listing program yang ada pada percobaan 1 dan buatkan flowchartnya ?
3. Jelaskan proses perubahan flag register dari masing-masing instruksi ?