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.
III.
Tambahkan register yang menampung hasil bagi dengan satu.
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.
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.
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
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.