LAPORAN PRAKTIKUM Instruksi Aritmatika dan Operasi Logika Praktek Mikroprosesor 1 Job Sheet 2 Nama : DENNY SETIAWAN NIM : 3201311036 Kelas : V B Kelompok : 1 Anggota Kelompok : Denny Setiawan Ranto susilo Isah Andi Rintis Sanjaya LABORATORIUM TEKNIK ELEKTRONIKA JURUSAN TEKNIK ELEKTRO POLITEKNIK NEGERI PONTIANAK 2015 Instruksi Aritmatika dan Operasi Logika
I. 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 sebagainya II. a. Tugas Pendahuluan 1. 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? 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 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? 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 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 (0042) = 63 III. Alat dan Bahan Training Kit MTS-80A IV. Prosedur Percobaan Percobaan 1 1. 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 Data Tabel 1 Prediksi Alamat Menemonic Register Flag A B S Z H V N C 8000 LD SP,9000 00 00 1 1 1 1 1 1 8003 AND A 8004 LDB,09H 8006 LD A, 0FFH 8008 INC A 8009 ADC A,B 800A XOR A 800B ADD A,B 800C ADD A,88H 800E SCF 8011 SBC A,33H 8013 SUB 25H 8015 RST 08H Tabel 2 Hasil Eksekusi Program Alamat Menemonic Register Flag A B S Z H V N C 8000 LD SP,9000 00 00 1 1 1 1 1 1 8003 AND A 8004 LD B,09H 8006 LD A, 0FFH 8008 INC A 8009 ADC A,B 800A XOR A 800B ADD A,B 800C ADD A,88H 800E SCF 8011 SBC A,33H 8013 SUB 25H
8015 RST 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?