Laporan Praktikum Mikroprosesor

14
LAPORAN PRAKTIKUM MIKROPROSESOR Tanggal Percobaan : 11 Oktober 2012 Nama : Wildan Syahrizal Azid NIM : (111331061) Partner : Winni Kamilia (111331062) Yuniar Handayani (111331064) Kelas : II TC B2

description

praktikum mikroprosesor metode pembagian.

Transcript of Laporan Praktikum Mikroprosesor

LAPORAN PRAKTIKUM

MIKROPROSESOR

Tanggal Percobaan : 11 Oktober 2012

Nama : Wildan Syahrizal Azid

NIM : (111331061)

Partner : Winni Kamilia (111331062)

Yuniar Handayani (111331064)

Kelas : II TC B2

TEKNIK TELEKOMUNIKASI

POLITEKNIK NEGERI BANDUNG

2012

Program Pembagian Data

I. Tujuan Praktikum

Mahasiswa dapat mmembuat program pembagian data

II. Landasan Teori

Proses pembagian memiliki 2 metoda yaitu:

1. Pengurangan berulang

2. Shift & Subtract

Dalam membuat program pembagian tidak bisa secara langsung karena keterbatasan

set – set instruksi untuk itu maka pemrogram harus membuat suatu program khusus yang

dapat menyelesaikan operasi tersebut.

Seperti halnya pada operasi perkalian, operasi pembagian ini pun dapat diselesaikan

dengan beberapa metode. Diantara metode-metode tersebut adalah dengan melakukan proses

pengurangan berulang dan sub and subtract (pergeseran dan pengurangan).

Metode Pengurangan Berulang

Sesuai dengan namanya, metode ini menerapkan pengurangan yang dilakukan

berulang-ulang atas bilangan yang dibagi dengan bilangan pembagi, dan pengurangan ini

akan berhenti setelah hasil pengurangan bernilai negatif.

Untuk pembagian bilangan biner, bilangan yang dibagi dikurangi oleh bilangan

pembagi secara berulang-ulang sampai diperoleh hasil pengurangan yang besarnya lebih kecil

dari nilai bilangan pembagi. Hasil bagi dan sisa hasil bagi pada operasi pembagian di

mikroprosesor 8085 ini disimpan pada register yang berbeda

Metode shift and subtract

Metode ini sangat praktis digunakan dalam proses pembagian. Seperti halnya proses

perkalian, dalam proses pembagian pun ada beberapa aturan yang digunakan, yaitu :

a. Jika sisa bagi lebih kecil dari pembagi makaprogram tidak akan melakukan

instruksi apapun dan proses pembagian tidak bisa dilakukan.

b. Jika sisa bagi lebih besar atau sama dengan pembagi maka ada dua langkah yang

harus dilakukan yaitu:

1. Kurangkan sisa bagi dengan pembagi, dan simpan hasilnya pada register

yang menampung sisa bagi.

2. Tambahkan register yang menampung hasil bagi dengan satu.

III. Langkah Percobaan

1. Hidupkan midicom intel 8085.

2. Buat diagram alir dan program untuk membagi data 16 bit yang ada pada

register BC dengan data 8 bit yang ada pada register D. Simpan hasil bagi

pada register HL dan sisa bagi pada register E. Tulis program mulai alamat

$9100. Kerjakan dengan dua metoda.

Metoda Pengulangan Berulang

Mengisi stack pointer dengan FFFF agar data yang sudah diproses tidak berubah.

Amankan isi pasangan reg BC dan DE dengan instruksi PUSH. Isi dapat dikembalikan kembali dengan instruksi POP.

Isi reg HL dengan 0, untuk memastikan isi reg HL apakah

bernilai atau tidak.

Masukkan reg B ke Akumulator dan bandingkan dengan

nol. Jika Z = 0 maka langsung lakukan proses

pengurangan, jika tidak masukan reg C pada akumulator

dan bandingkan dengan reg D. Jika Cy = 1 maka

kembalikan isi reg DE dan BC dan masukkan reg C pada

reg E. Jika tidak, lakukan proses pengurangan.

Alamat Hex-code Mnemonic

9100 31 FFFF LXI SP,FFFF

9103 C5 PUSH B

9104 D5 PUSH D

9105 21 0000 LXI H,000

9108 78 MOV A,B

9109 FE 00 CPI 00

910B C2 1391 JNZ

910E 79 MOV A,C

910F BA CMP D

9110 DA 1E91 JC

9113 79 MOV A,C

9114 92 SUB D

9115 4F MOV C,A

9116 78 MOV A,B

9117 CE 00 SBI 00

9119 47 MOV B,A

911A 23 INX

911B C3 0891 JMP

911E D1 POP D

911F 59 MOV E,C

9120 C1 POP B

9121 CF RST 1

Metoda Shift & Sub

Mengisi stack pointer dengan FFFF agar data yang sudah diproses tidak berubah.Amankan isi pasangan reg BC dan DE dengan instruksi PUSH. Isi dapat dikembalikan kembali dengan instruksi POP.Isi reg HL dengan reg BC, untuk memastikan isi reg HL apakah bernilai atau tidak. Isi reg C dengan nol dan reg E dengan 10.

Tambahkan isi pasangan reg HL dengan isi HL dan simpan di

HL(untuk mempengaruhi Cy reg flag). Masukkan reg C pada

Akumulator lakukan proses dan kembalikan lagi pada reg C.

Jika Cy = 1 lakukan proses pengurangan, jika tidak

bandingkan reg C dengan reg D. Jika setelah dibandingkan Cy

= 1, maka lakukan pengurangan 1.

Lakukan proses pengurangan, jika Z = 0 maka loop masukan

data selanjutnya. Jika tidak maka kembalikan isi reg DE dan

BC dan masukkan reg C pada reg E.

Alamat Hex-code Mnemonic

9100 31 FFFF LXI SP,FFFF

9103 C5 PUSH B

9104 D5 PUSH D

9105 E5 PUSH H

9106 C5 PUSH B

9107 E1 POP H

9108 C1 POP B

9109 0E 00 MVI C,00

910B 1E 00 MVI E,10

910D 29 DAD H

910E 79 MOV A,C

910F 8F ADC A

9110 4F MOV C,A

9111 DA 1891 JC 9119

9114 79 MOV A,C

9115 BA CMP D

9116 DA 1991 JC 911D

9119 79 MOV A,C

911A 92 SUB D

911B 4F MOV C,A

911C 2C INR L

911D DCR E

9121 D1 POP D

9122 59 MOV E,C

9123 C1 POP B

9124 CF RST 1

Data uji pada shift & sub harus sama seperti hasil data uji pada metoda pengurangan berulang.

3. Buat diagram alir dan program untuk membagi data desimal 4 digit yang ada

pada register BC dengan data desimal 2 digit yang ada pada register D.

Simpan hasil bagi pada register HL dan sisa bagi pada register E. Tulis

program mulai alamat $9200.

Mengisi stack pointer dengan FFFF agar data yang sudah diproses tidak berubah.Amankan isi pasangan reg BC dengan instruksi PUSH. Isi dapat dikembalikan kembali dengan instruksi POP.Isi reg HL dengan nol, untuk memastikan isi reg HL apakah bernilai atau tidak.

Masukkan reg B pada akumulator dan OR kan dengan C. Jika Z =1 maka langsung stop, jika tidak lakukan proses pengurangan.

Masukkan reg B ke Akumulator dan bandingkan dengan nol.

Jika Z = 0 maka langsung lakukan proses pengurangan, jika

tidak masukan reg C pada akumulator dan bandingkan dengan

reg D.Jika Cy = 1 maka stop, jika tidak lakukan proses

pengurangan.

Lakukan proses pengurangan dan jump masukan data

selanjutnya. Kembalikan isi reg DE dan BC dan masukkan reg

C pada reg E.

Alamat Hex-code Mnemonic

9200 31 FFFF LXI SP,FFFF

9203 21 0000 LXI H,000

9205 C5 PUSH B

9207 78 MOV A,B

9208 B1 ORA C

9209 CA 1092 JZ 923E

920C 78 MOV A,B

920D FE 00 CPI 00

920F C2 1092 JNZ 9215

9212 79 MOV A,C

9213 BA CMP D

9214 DA 1592 JC 923E

9217 E5 PUSH H

9218 3E 99 MVI A,99

921A 2 UB D

921B 6F MOV L,A

921C 26 99 MVI H,99

921E 7D MOV A,L

921F C6 01 ADI 01

9221 27 DAA

9222 6F MOV L,A

9223 7C MOV A,H

9224 CE 00 ACI 00

9226 27 DAA

9227 67 MOV H,A

9228 79 MOV A,C

9229 85 ADD L

922A 27 DAA

922B 4F MOV C,A

922C 78 MOV A,B

922D 8C ADC H

922E 27 DAA

922F 47 MOV B,A

9230 E1 POP H

9231 7D MOV A,L

9232 C6 01 ADI 01

9234 27 DAA

9235 6F MOV L,A

9236 7C MOV A,H

9237 CE 00 CPI 00

9239 27 DAA

923A 67 MOV H,A

923B C3 0C92 JMP 920C

923E 59 MOV E,C

923F C1 POP B

9240 CF RST 1

4. Buat diagram alir dan program untuk membagi data oktal 2 digit yang ada

pada register B dengan data oktal 2 digit yang ada pada register C. Simpan

hasil bagi pada register L dan sisa bagi pada register H. Tulis program mulai

$9300.

Alamat Hex-code Mnemonic

9300 2E 00 MVI L,00

9302 60 MOV H,B

9303 7C MOV A,H

9304 B9 CMP C

9305 DA 2893 JC 9328

9308 7C MOV A,H

Isi reg L dengan nol untuk memastikan bernilai atau tidak. Masukan reg B pada reg H.

Masukkan reg H pada akumulator dan bandingkan dengan reg C. Jika Cy = 1 maka stop, jika tidak lakukan proses pengurangan.

Lakukan proses pengurangan. Masukkan reg H pada akumulator, kurangi dengan reg C lalu and dengan 0F karena data octal dan bandingkan dengan 08. Jika Cy =1 maka lakukan pengurangan reg L. Jika tidak, masukkan reg H pada akumulator, kurangi 08 dan kembalikan ke reg H.

Pengurangan reg L masukkan pada akumulator tambah 01, lalu and 0F karena data octal dan bandingkan 08. Jika Cy = 1 maka jump dan masukkan data selanjutnya untuk diproses kembali, jika tidak bandingkan kembali dengan 08.

9309 91 SUB C

930A 67 MOV H,A

930B E6 0F ANI 0F

930D FE 08 CPI 08

930F DA 1693 JC 9316

9312 7C MOV A,H

9313 C6 08 SUI 08

9315 67 MOV H,A

9316 7D MOV A,L

9317 C6 01 ADI 01

9319 6F MOV L,A

931A E6 0F ANI 0F

931C FE 08 CPI 08

931E DA 2493 JC 9325

9321 7D MOV A,L

9322 C6 08 ADI 08

9324 6F MOV L,A

9325 C3 0393 JMP 9303

9326 CF RST 1

5. Matikan midicom intel 8085

IV. Kesimpulan

Seperti pada operasi perkalian, operasi pembagian ini pun dapat diselesaikan dengan

beberapa metode. Diantara metode-metode tersebut adalah dengan melakukan proses

pengurangan berulang dan sub and subtract (pergeseran dan pengurangan).

Pada praktikum yang dilakukan untuk melakukan proses pembagian terlebih dahulu harus

mengamankan isi reg seperti halnya pada proses perkalian.