PERCOBAAN 7 PEMBAGIAN BINER

dokumen-dokumen yang mirip
PERCOBAAN 3 INSTRUKSI ARITMATIK DAN LOGIK. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

PERCOBAAN 6 INSTRUKSI PUTAR, GESER, DAN ROUTINE PERKALIAN. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

PERCOBAAN 5 STACK DAN SUBROUTINE. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

PERCOBAAN 2 TRANSFER DATA. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

PERCOBAAN 1 PENGENALAN MIKROPROSESOR MPF-I. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

PERCOBAAN 4 INSTRUKSI PERCABANGAN. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

LAPORAN PRAKTIKUM SISTEM MIKROPROSESSOR APLIKASI DASAR INSTRUKSI ARITMATIKA DAN OPERASI LOGIK

LAPORAN PRAKTIKUM SISTEM MIKROPROSESSOR STACK DAN SUBROUTINE

BAB 3 Pemrograman Zilog Z80 Lanjutan

LAPORAN PRAKTIKUM SISTEM MIKROPROSESSOR INSTRUKSI PERCABANGAN DAN LOOP

DESKRIPSI SINGKAT INSTRUKSI-INSTRUKSI PADA AT89S51

LAPORAN PRAKTIKUM MIKROPROSESOR PEMINDAHAN DATA

INSTRUKSI-INSTRUKSI MIKROPROSESOR Z80. Yoyo somantri Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia

BAB I PENDAHULUAN. A. Deskripsi. B. Prasyarat. C. Petunjuk Penggunaan Modul. 1. Bagi Guru/Fasilitator

BAB I PENDAHULUAN. A. Deskripsi. B. Prasyarat. C. Petunjuk Penggunaan Modul. 1. Bagi Guru/Fasilitator

INSTRUKSI MIKROPROSESOR

LAB SHEET 3 OPERASI ARITMATIKA

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

LAB SHEET 5 PEMROGRAMAN DENGAN STACK POINTER (INSTRUKSI PUSH DAN POP)


LAMPIRAN D DATA SHEET

LAPORAN PRAKTIKUM. Praktek Mikroprosesor 1 Job Sheet 2

BAHASA DAN PENGEMBANGAN PROGRAM MIKROPROSESOR

PENGANTAR MIKROKOMPUTER PAPAN TUNGGAL (SINGLE CHIP) Oleh : Sumarna, Jurdik Fisika, FMIPA UNY

BAB 4 STACK AREA, SUBROUTINE dan INSTRUKSI BLOK

LAB SHEET 4 OPERASI LOGIKA

BAHASA PEMOGRAMAN MIKROPROSESOR Z80. Yoyo somantri Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia

LAPORAN PRAKTIKUM MIKROPROFESOR Z80-PIO UNTUK GERAK MOTOR STEPPER

INTRUKSI-INTRUKSI BAHASA PEMROGRAMAN ASSEMBLY

SISTEM DIGITAL Dalam Kehidupan Sehari-hari PADA KALKULATOR

PEMROGRAMAN MIKROPROSESOR KASUS PADA MPF-1

MATERI SITEM MIKROPROSESOR X TAV, XT ELIN

TEKNIK MIKROPROSESOR

OF DF IF TF SF ZF AF PF CF

Percobaan 7 REGISTER (PENCATAT) Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

a b a AND b a OR b a XOR b a NOT a

UNIVERSITAS NEGERI YOGYAKARTA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA)

ARSITEKTUR MIKROPROSESOR Z80. Yoyo somantri Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia

Simple As Possible (SAP) - 2. Abdul Syukur

Microcontroller: Bahasa Pemrograman Assembly 8051

BAB VII KOMPUTER SEDERHANA SAP-3 (SIMPLE AS POSSIBLE-3)

Arsitektur SAP-2 W BUS ACKNOWLEDGE HEXADECIMAL KEYBOARD ENCODER ACCUMULATOR INPUT PORT 1 ALU FLAGS READY INPUT PORT 2 SERIAL IN PROGRAM COUNTER TMP

BAB I PENDAHULUAN. A. Deskripsi. B. Prasyarat. C. Petunjuk Penggunaan Modul. 1. Bagi Guru/Fasilitator

Simple As Possible (SAP) - 2. Abdul Syukur

Variabel, Operator Dan Ekspresi. Agus Priyanto, M.Kom

Operasi Transfer Data

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

MODE OPERASI TIMER/COUNTER. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A

Tahun Akademik 2015/2016 Semester I. DIG1B3 Konfigurasi Perangkat Keras Komputer. Pertemuan 1: Representasi Data

DASAR PEMROGRAMAN MIKROPROSESOR

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Aritmatik Komputer. Oky Dwi Nurhayati, ST, MT

Percobaan 3 RANGKAIAN PENJUMLAH BINER. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

DCH1B3 Konfigurasi Perangkat Keras Komputer SAP-2

R E G I S T E R. = Code Segment Register = Data Segment Register = Stack Segment Register = Extra Segment Register. 3.

LAB SHEET 2 MODUS PENGALAMATAN DAN ISI MEMORI DATA

ARSITEKTUR SISTEM KOMPUTER. Wayan Suparta, PhD April 2018

Antarmuka LCD pada DST-AVR

8/4/2011. Microprocessor & Microcontroller Programming. Bahasa Pemrograman. Bahasa Pemrograman. Bahasa Pemrograman

SISTEM KOMPUTER.

BAHASA DAN PENGEMBANGAN PROGRAM MIKROPROSESOR

TIMER DAN COUNTER MIKROKONTROLER ATMEL

Simple As Possible (SAP) - 1. Abdul Syukur

BAHASA PEMROGRAMAN MIKROKOMPUTER

DCH1B3 Konfigurasi Perangkat Keras Komputer

RUNNING TEXT. Gambar 1. Susunan Running Text

INSTRUKSI DASAR Salahuddin, SST.

BAB IV IMPLEMENTASI DAN PENGUJIAN IMPLEMENTASI DAN PENGUJIAN

PERTEMUAN SET INSTRUKSI MIKROKONTROLER AT 89C51

9. INSTRUKSI LANJUT PADA PLC OMRON

Dari tabel diatas dapat dibuat persamaan boolean sebagai berikut : Dengan menggunakan peta karnaugh, Cy dapat diserhanakan menjadi : Cy = AB + AC + BC

BAB I TUGAS MATA KULIAH SISTEM MIKROPROSESOR DOSEN PEMBERI TUGAS : FATAH YASIN, ST, MT.

Rangkaian ALU (Arithmetic and Logic Unit) yang digunakan untuk menjumlahkan bilangan dinamakan dengan Adder. Adder juga sering disebut rangkaian

6. Rangkaian Logika Kombinasional dan Sequensial 6.1. Rangkaian Logika Kombinasional Enkoder

Pendahuluan (1) D E F

Kuis : Bahasa Rakitan (UAS)

7.Lokasi hasil pemrosesan

Ringkasan Set Instruksi Dan Mode pengalamatan ( Addressing Mode )

BAHASA PEMOGRAMAN AT89S/Cxx (assembly)

KOMPETENSI DASAR : MATERI POKOK : Sistem Bilangan URAIAN MATERI 1. Representasi Data

ORGANISASI KOMPUTER INSTRUKSI MESIN DAN PROGRAM MATA KULIAH:

ARSITEKTUR MIKROPROSESOR

INSTRUKSI DAN BAHASA PEMOGRAMAN MIKROKONTROLER

M1632 MODULE LCD 16 X 2 BARIS (M1632)

Simple As Posible 2 (bag-1)

Quis. 2. Sistem bilangan yang menggunakan basis 8 adalah: A. Biner D. Hexadesimal B. Oktal E. Sexagesimal C. Desimal

BAB 2 Pemrograman Zilog Z80

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1

OPERASI ARITMATIKA. Untuk menambah dalam bahas Assembler digunakan perintah ADD, ADC serta INC Sintaks : ADD Tujuan,Asal

REGISTER Register-register yang terdapat pada mikroprosesor, antara lain :

BAB VI RANGKAIAN-RANGKAIAN ARITMETIK

2.1 Desimal. Contoh: Bilangan 357.

LM124/LM224/LM324/LM2902

LAPORAN PRAKTIKUM SISTEM MIKROPROSESOR PENGATURAN LAMPU LALU LINTAS DENGAN SENSOR HARI DAN JAM

9. Instruksi Lanjut pada PLC Omron

Menggunakan Bahasa Pemrograman Assembly

SISTEM BILANGAN DAN FORMAT DATA

DCH1B3 Konfigurasi Perangkat Keras Komputer

Karateristik proses baca dan tulis suatu data pada media disk magnetic, terbagi atas :

Percobaan 2 GERBANG KOMBINASIONAL DAN KOMPARATOR. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

Transkripsi:

PERCOBAAN 7 PEMBAGIAN BINER Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY E-mail : sumarna@uny.ac.id Tujuan dari percobaan ini agar memahami cara merancang subroutine pembagian biner untuk suatu mikrokomputer. Selain itu, agar terbiasa dengan teknikteknik perancangan program. Prosedur pembagian biner secara manual dan terperinci dapat dijelaskan sebagai berikut. Misalkan bagilah bilangan biner 11101101 dengan bilangan biner lain 00010100. Untuk contoh tersebut, perhatikan langkah-langkah berikut : 1. Tulislah bilangan yang akan dibagi di sebelah kanan dan bilangan pembagi di sebelah kiri. Kemudian letakkan hasilnya di atas bilangan yang dibagi. Hasil (jawaban) 1 1 1 0 1 1 0 1 (237) 0 0 0 1 0 1 0 0 (20) 2. Geser bilangan yang dibagi dan hasilnya (jawabannya) ke kiri 1 bit. Untuk membandingkan antara bilangan yang dibagi dengan pembagi, letakkan 7 buah 0 (nol) di belakang bilangan pembagi pada kolom di bawah bilangan yang dibagi. Dengan mudah dapat dilihat bahwa bilangan yang dibagi lebih kecil dari pada bilangan pembagi, karena itulah letakkan 0 (nol) pada kolom hasil (jawaban). 0 Hasil (jawaban) 1 1 1 0 1 1 0 1 0 0 0 0 0 0 41

3. Lihatlah, apakah bilangan yang dibagi masih lebih kecil dari pada bilangan pembaginya. Jika ternyata bilangan yang dibagi masih lebih kecil dari pada bilangan pembagi, maka letakkan 0 (nol) pada kolom hasil (jawaban). Jika sebaliknya, maka letakkan 1 (satu) pada kolom jawaban dan bilangan yang dibagi dikurangi dengan pembaginya. Selisishnya (perbedaannya) menjadi bilangan yang dibagi. Pada contoh tersebut, bilangan yang dibagi dengan hasilnya (jawabannya) harus digeser 5 bit sebelum 1 (satu) dapat diletakkan pada jawaban. Jadi 4 buah 0 (nol) dan satu buah 1 (satu) diletakkan pada kolom jawaban dengan cara sebagai berikut : 0 0 0 0 1 Hasil (jawaban) 1 1 1 0 1 1 0 1 0 0 4. Kurangi bilangan yang dibagi dengan pembagi. Perbedaannya menjadi bilangan yang dibagi. 0 0 0 0 1 Hasil (jawaban) 0 1 0 0 1 1 0 1 0 0 setelah pengurangan 5. dan hasilnya digeser ke kiri 2 bit, kemudian 1 (satu) diletakkan pada kolom jawaban. 0 0 0 0 1 0 1 Hasil (jawaban) 0 1 0 0 1 1 0 1 42

6. Kurangi bilangan yang dibagi dengan pembagi. Perbedaannya menjadi bilangan yang dibagi. 0 0 0 0 1 0 1 Hasil (jawaban) 0 0 1 0 0 1 0 1 setelah pengurangan 7. dan jawabannya digeser ke kiri 1 bit lagi. Karena bilangan yang dibagi masih lebih besar dari pada bilangan pembagi, maka kemudian meletakkan 1 (satu) pada kolom jawaban. 0 0 0 0 1 0 1 1 Hasil (jawaban) 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 8. Kurangi bilangan yang dibagi dengan pembagi. Sisa pembagian diletakkan pada poisis bilangan yang dibagi. 0 0 0 0 1 0 1 1 Hasil (11) 0 0 0 1 0 0 0 1 Sisa pembagian (17) 0 0 0 1 0 1 0 0 9. Jika sisa tidak sama dengan 0 (nol), proses pembagian dapat dilanjutkan tetapi hasilnya berisi pecahan. 43

Berdasarkan algoritma di atas, dipaelukan 3 (tiga) lokasi memori untuk menyimpan bilangan yang dibagi, bilangan pembagi, dan hasilnya. Percobaan 7.1 : Merancang sebuah program untuk membagi data 16 bit di pasangan register DE dengan data 16 bit pada pasangan register BC. Hasilnya harus disimpan pada pasangan register DE dan sisanya pada pasangan regiater HL. Seperti diketahui bahwa pasangan register HL dapat digunakan sebagai register untuk mengerjakan operasi pengurangan aritmatik 16 bit. Geser data 16 bit yang ada di DE ke kiri 1 bit ke pasangan register HL. Bandingkan HL dengan BC. Jika HL lebih besar dari pada BC, kurangi HL dengan BC dan carry flag secara otomatis akan di-set menjadi 1 (satu). Jika sebaliknya, tidak akan ada operasi pengurangan dan carry flag akan menjadi 0 (nol). Karena bit register DE yang paling kanan sekarang menjadi kosong, carry flag dipindahkan ke posisi ini. Perhatikan mnemonik dan diagram alir program berikut. Mnemonik subroutine pembagian : Org 1800h XOR A LD H,A LD L,A LD A,16 DV0 : RL E RL D ADC HL,HL SBC HL,BC JR NC,DV1 ADD HL,BC DV1 : CCF DEC A JR NZ,DV0 EX DE,HL ADC HL,HL RET 44

Diagram alirnya : Mulai A = 16 (Penghitung) HL = 0 (Register untuk mengerjakan pengurangan) Carry 0 Hubungkan HL dan DE secara berurutan, kamudian geser ke kiri 1 bit Bandingkan HL dan BC. Jika HL lebih besar dari pada BC, kurangi HL dengan BC. Jika sebaliknya tidak ada pengurangan Jika ada pengurangan, carry = 1. Jika sebaliknya, carry = 0. Pindahkan carry ke DE bit paling kanan. A (A 1) Simpan hasilnya Selesai Pernyataan LD H,A dan LD H,A dapat diganti dengan LD HL,0. Tetapi perintah ini memerlukan memori sebanyak 3 byte dan waktu pelaksanaannya adalah 10 clock cycle. Pada contoh di atas digunakan perintah LD H,A dan LD H,A (A di-nol-kan dengan XOR A). Perintah itu hanya memerlukan memory 2 byte dan dilaksanakan dalam waktu 8 clock cycle. 45

Perintah-perintah penjumlahan dan pengurangan dapat digunakan untuk operasi-operasi GESER KIRI atau ROTASI. Dalam contoh di atas, perintah ADC HL,HL sama dengan merotasikan data 16 bit pada pasangan HL ke kiri 1 bit (bit yang dipindahkan ke carry flag berasal dari register D bit paling kiri). Perhatikan fungsi perintah-perintah berikut : ADD A,A ADC A,A Geser register A ke kiri 1 bit, atau kalikan A dengan 2. Rotasikan A ke kiri 1 bit. ADD HL,HL Geser HL ke kiri 1 bit, atau kalikan dengan 2. ADC HL,HL Rotasikan HL ke kiri 1 bit. ADD IX,IX Geser IX ke kiri 1 bir, atau kelikan dengan 2. ADD IY,IY Geser IY ke kiri 1 bir, atau kelikan dengan 2. Masukkan program di atas ke MPF-1, kemudian jalankan dan periksalah status register-register yang terlibat (AF, BC, DE, dan HL). Cocockkan hasilnya dengan perhitungan secara manual. Percobaan 7.2 : Gantilah perintah terakhir (RET) pada percobaan 7.1 (subroutine pembagian) di atas dengan perintah RST 38h kemudian jalankan. Catatlah hasilnya pada tabel berikut : Yang dibagi Pembagi Jawab Sisa Pemeriksaan 8686h 0020h 0434h 0006h FFFFh 0003h 5555h 0000h 5A48h 0142h 0047h 00FAh 0h 0142h 0000h 0000h 1234h 0h FFFFh 1234h 46

Percobaan 7.3 : Ubahlah program di atas sedemikian rupa sehingga proses pembagian dapat dilanjutkan sampai diperoleh hasil pecahan 1 bit. Percobaan 7.4 : Dengan mempergunakan program di atas sebagai subroutine, rancanglah program utama untuk membagi data di RAM pada alamat 1A00h s/d 1A01h dengan data di RAM pada alamat 1A04h s/d 1A05h. Hasilnya harus disimpan pada alamat 1A00h s/d 1A01h. Sebagai bahan pertimbangan, gunakan program berikut : Org 1900h LD DE,(1A00h) LD BC,(1A04h) CALL Pembagian LD (1A00h),HL RST 38h Percobaan 7.5 : Rancanglah sebuah program untuk membagi data 4 byte yang tersimpan pada alamat 1A00h s/d 1A03h dengan data 4 byte yang tersimpan pada memori yang alamatnya ditunjukkan oleh pasangan register HL. Hasilnya disimpan pada alamat 1A00h s/d 1A03h. Sisanya disimpan pada alamat 1A04h s/d 1A07h. 47