Morlan Pardede, MT
Percobaan Aritmatika dan Logika
MODUL 2
PERCOBAAN ARITMATIKA DAN LOGIKA
A. TUJUAN
1. Membuktikan fungsi instruksi-instruksi pengolahan data.
2. Membuat program dan penjumlahan, pengurangan, dan perkalian secara
hexadesimal dan BCD.
B. Dasar Teori
Instruksi Arithmatika pada mikroprosesor 8085 terdiri dari :
-Penjumlahan tanpa carry: ADD r, ADI d8
-Penjumlahan dengan carry: ADC r, ACI d8
-Pengurangan tanpa borrow: SUB r, SUI d8
-Pengurangan dengan borrow: SBB r, SBI d8
-Penjumlahan 16-bit : DAD rp
Instruksi Logika pada mikroprosesor 8085 terdiri dari:
-Logika AND : ANA r, ANI d8
-Logika OR : ORA r, ORI d8
-Logika EX-OR: XRA r, XRI d8
-Logika Complement: CMA, CMC
Instruksi pengeseran bit pada mikroprosesor 8085 hanya dapat dilakukan pada
akumulator dan bit carry. Instruksi putar/geser ini a dalah:
-Putar/geser ke kiri dengan melalui carry : RAL
-Putar/geser ke kiri tanpa melalui carry : RLC
-Putar/geser ke kanan dengan melalui carry :RAR
-Putar/geser ke kanan tanpa melalui carry : RRC
a. Instruksi Penjumlahan.
Seluruh instruksi penjumlahan 8-bit dilakukan melalui Akumulator, dengan
demikian salah satu bilangan yang akan dijumlahkan harus dimasukkan pada Reg. A.
Hasil penjumlahan terdapat pada akumulator dan indikasi/status terdapat pada register
Flag.
Contoh 1:
Berikut ini adalah program untuk menjumlahkan data yang terdapat memori 7170H
dengan 7171 H dan hasil disimpan pada memori 7172 H.
PROGRAM 1:
Mulai
Acc=Acc+bilangan Dikali
Tidak
Loop=0
?
Ya
Selesai
Program 2 merupakan program perkalian dua buah data 1 byte untuk yang
hasilnya tidak lebih dari 1 byte.
PROGRAM 2.
Program berikut adalah program perkalian isi Register A dengan isi register B dan
hasilnya pada HL. Sebelum dieksekusi isikan Register A dengan data 64 H dan register
B dengan 05.
Program 3.
C. PERCOBAAN
Simulasikan progam 2 sampai program 10 berikut ini pada mikrokomputer dan
kemudian eksekusi secara bertahap (step demi step) dengan fungsi trace (tombol F8)
1. Program Penjumlahan
PROGRAM 3:
2. Program Pengurangan
PROGRAM 4.
penjumlahan jika lebih besar dari 9 atau bit Cy=1 atau Ac=1. Untuk 2-digit maka dapat
menambahkan 06 H, 60H atau 66 H.
Catatan: pada operasi DAA jika bit Cy sebelumnya adalah logika 1 maka Cy tidak
diubah (tetap), tetapi jika bit Cy sebelumnya 0 dan operasi DAA menghasilkan carry
maka bit Cy diset 1.
DAA
HLT
Reg. A = ..., C = .. , D = ... , Flag : S = Z= H= P= Cy =
5. Operasi Logika
PROGRAM 7
6. Operasi Geser
PROGRAM 8.
DCR B B= B= B=
JNZ Ulang Z= Z= Z=
RST 7 Selesai
Reg. A = ..., C = .. , D = ... , Flag : S = Z= H= P= Cy =
PROGRAM 9.
DCR C C= C= C= C=
JNZ Ulang Z= Z= Z= Z=
HLT
Reg. A = ..., C = .. , D = ... , Flag : S = Z= H= P= Cy =
7. Program 10 adalah program untuk menghitung banyaknya data yang terdapat pada
alamat AA00(H) s/d AA05(H) yang bilangan genap. Program ini memeriksa logika
dari bit LSB atau bit b0 dari data, dimana jika b0 dari data logika 0 berarti data adalah
bilangan genap dan jika logika 1 berarti bilangan ganjil.
Program 10.
- Sebelum program dieksekusi terlebih dahulu isikan data pada alamat AA00(H)
s/d AA05(H).
- Eksekusi program dan periksa isi register B.
- Apakah isi register B sama dengan banyaknya bilangan yang terdapat
pada AA00(H) s/d AA05(H).
Tugas:
1. Buatlah program untuk dapat menjumlahkan 2 buah data 3-byte secara desimal
dimana Data-1 terdapat pada memori 8100H s/d 8102H dan Data-2 terdapat pada
memori 8110H s/d 8112H sebagai contoh isi memori 8100H s/d 8102H =76, 63, 75
sebagai Data-1 dan isi memori 8110H s/d 8112H adalah 98,76,78 sebagai Data-2
dengan proses sebagai berikut:
2. Buatlah program menjumlahkan 5 buah data 1-byte secara desimal dimana data-
data tersebut terdapat pada memori 8100H s/d 8104H dan hasilnya disimpan pada
memori 8110H dan 8111H. Sebagai contoh isi memory 8100H.s/d 8104H adalah 98,
97, 69,73,83 dan prosesnya adalah sebagai berikut:
00 00
98 (8100)
00 98
97 (8101)
01 2F
66
01 95
69 (8102)
01 FE
66
02 64
73 (8103)
02 D7
60
03 37
83 (8104)
03 BA
66
04 20
(8111) (8110)
Catatan: Buat alamat byte pertama dimulai dari 8200H dan alamat data byte2 8210H
(8200H)=45; (8201H)=89H ; (8202H)=72 H; (8203H )=86
(8210H)=23; (8211H)=67H ; (8212H)=89 H; (8213H)=79