Laporan Praktikum Mikroprosesor
-
Upload
fadel-haidar-muhammad -
Category
Documents
-
view
417 -
download
11
description
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.