Anda di halaman 1dari 41

LAPORAN

PRAKTIKUM SISTEM MIKROPROSESOR


PERCOBAAN ARITHMATIKA

DISUSUN OLEH
IAN PAULUS SINAMBELA
18050602030
TK-4D

JURUSAN TEKNIK ELEKTRO


PROGRAM STUDI TEKNIK TELEKOMUNIKASI
POLITEKNIK NEGERI MEDAN
T.A. 2020

i
LEMBAR PENGESAHAN

No. Percobaan : 02/ LKTK III/ LTK-II /TK-4D / 2020

Judul : ARITMATIKA
NamaPraktikan : Ian Paulus Sinambela

NIM : 1805062030

Nama Partner : 1. Cantika Surya

2. Renova Simanjuntak

3. PutriSuci Lestari

4. Sherina Yuli Hasibuan

5. SelaJulikaGultom

6. SumitroButarbutar

Kelas / Group : TK – 4D / SATU (I)


TanggalPercobaan : 7 Juni 2020

TanggalPenyerahan : 12 Juni 2020

Instruktur : 1. Ir. MorlanPardede, MT


2. Daniel SaragihNapitu,ST,M.Kom

Instruktur I Instruktur II

(Ir. MorlanPardede, MT) (Daniel Saragih,ST,M.Kom)

2
TUJUAN
1. Membuktikan fungsi instruksi-instruksi pengolahan data.
2. Membuat program dan penjumlahan, pengurangan, dan perkalian secara
hexadesimal dan BCD.

PERALATAN YANG DIGUNAKAN


Laptop dengan aplikasi simulator 8085

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

3
-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 7170 H dengan
7171 H dan hasil disimpan pada memori 7172 H.

PROGRAM 1:

Alamat Op-Code Mnemonic Komentar

A000 3A-70-71 LDA 7170 Baca Isi memori 7170

A003 47 MOV B, A dan simpan pada Reg.B

A004 3A-71-71 LDA 7171 Baca isi memori 7171

A007 80 ADD B Jumlahkan isi 7170 dengan isi 7171

A008 32-72-71 STA 7172 Hasil simpan pada memori 7172

A00B 76 HLT Selesai

Jika isi memori adalah:

7170 = 95 H 7171=85 H proses penjumlahnnya adalah:

95 H + 85 H =1A H dengan Cy=1, yang mengakibatkan isi memori7172 H = 1AH.

b. Perkalian

4
Pada mikroprosesor 8085 tidak ada instruksi perkalian, untuk itu untuk melaksanakan
proses perkalian harus dibuat program. Proses perkalian dapat dilakukan dengan
menjumlahkan bilangan yang dikali sebanyak pengali. Sebagai contoh perkalian 5 dengan 4
(5x4) dapat dilakukan dengan menjumlahkan bilangan 4 sebanyak 5 kali (4+4+4+4+4).
Dengan demikian program perkalian dapat dibuat dengan instruksi penjumlahan. Berikut ini
diberikan langkah-langkah untuk pembuatan program perkalian data 05 dengan 04 dengan
diagram alir seperti pada gambar 1.

Mulai

Clear Acc dan bit Cy

Set Loop= Bilangan Pengali

Set Bilangan dikali

Acc=Acc+bilangan Dikali

Kurangi banyak Loop

Tidak
Loop=0
?
Ya

Selesai

Gambar 1 Diagram alir Perkalian dengan proses jumlah

Program 2 merupakan program perkalian dua buah data 1 byte untuk yang hasilnya
tidak lebih dari 1 byte.

PROGRAM 2.

Alamat Op-Code Label Mnemonic Komentar

A000 AF XRA A Clear Acc. dan Cy A=Cy=

A001 06-04 MVI B,04 Set dikali B=04 B=

A003 0E-05 MVI C,05 Set yang pengali C=05 C=

A005 80 Ulang: ADD B Acc=Acc + Reg.B A=Cy= A=Cy= A=Cy= A=Cy=

A006 0D DCR C Kurangi pengali C=Z= C=Z= C=Z= C=Z=

5
A007 C2-05-A0 JNZ Ulang Ulangi jika pengali PC= PC= PC= PC=
belum 0

A00A 76/FF HLT / RST7 Selesai

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.

Alamat Op-Code Label Mnemonic Komentar

A010 LXI H,0000 Clear hasil HL=Cy=

MVI D,00 Clear buffer D=

MOV E,A Ambil bil. yang dikali E=

Ulang: DAD D HL=Hasil + bil.dikali HL=Cy=

DCR B

JNZ Ulang

HLT Selesai

6
PERCOBAAN

PROGRAM 1

7
Berikut ini adalah program untuk menjumlahkan data yang terdapat memori 7170 H dengan
7171 H dan hasil disimpan pada memori 7172 H.

Alamat Op-Code Mnemonic Komentar

A000 3A-70-71 LDA 7170 Baca Isi memori 7170

A003 47 MOV B, A dan simpan pada Reg.B

A004 3A-71-71 LDA 7171 Baca isi memori 7171

A007 80 ADD B Jumlahkan isi 7170 dengan isi 7171

A008 32-72-71 STA 7172 Hasil simpan pada memori 7172

A00B 76 HLT Selesai

Jika isi memori adalah:

7170 = 95 H 7171=85 H proses penjumlahnnya adalah:

8
95 H + 85 H =1A H dengan Cy=1, yang mengakibatkan isi memori7172 H = 1AH.

PROGRAM 2

9
Program 2 merupakan program perkalian dua buah data 1 byte untuk yang hasilnya
tidak lebih dari 1 byte.

Alamat Op-Code Label Mnemonic Komentar

A000 AF XRA A Clear Acc. dan Cy A=00H


Cy=0

A001 06-04 MVI B,04 Set dikali B=04 B=04


H

A003 0E-05 MVI C,05 Set yang pengali C=05 C=05H

A005 80 Ulang: ADD B Acc=Acc + Reg.B A=04H A=08H A=0CH A=10H A=14H
Cy=0 Cy=0
Cy=0 Cy=0 Cy=0

A006 0D DCR C Kurangi pengali C=04H C=03H C=02H C=01H C=00H


Z=0 Z=0
Z=0 Z=0 Z=1

10
A007 C2-05-A0 JNZ Ulang Ulangi jika pengali PC= PC= PC= PC= PC=
belum 0 A005 A005
A005 A005 A00A

A00A 76/FF HLT / RST7 Selesai

XRA A = clear Acc dan Cy

MVI B,04 = set bilangan yang dikali, B = 4

MVI C,05 = set pengali, C=5

ADD B = Jumlahkan isi Acc dengan reg. B

A= 00 H 0000 0000

B= 04 H 0000 0100 +

A= 0000 0100

DCR C = Mengkurangkan pengali

C= 05 H 0000 0101

0000 0001 -

C= 0000 0100

JNZ Ulang = Ulangi jika pengali belum bernilai 0

HLT = Selesai

Reg. A = 14 H, C = 0 H , Flag : S = 0 Z = 1 H= 0 P =1 Cy = 0

11
PROGRAM 3

12
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.

Alamat Op-Code Label Mnemonic Komentar

A010 21-00-00 LXI H,0000 Clear hasil HL=Cy=

A013 16-00 MVI D,00 Clear buffer D=00

A015 5F MOV E,A Ambil bil. yang dikali E=64

A016 19 Ulang: DAD D HL=Hasil + bil.dikali HL=64H HL=C8 HL=012 HL=0 HL=0
Cy=0 H Cy=0 190H 1F4H
CH Cy=0
Cy=0 Cy=0

A017 05 DCR B Kurangi Pengali B= 04H B= 03H B= 02H B= B=


01H 00H

A018 C2-16- JNZ Ulang Ulangi jika pengali Z= 0 Z= 0 Z= 0 Z= 0 Z= 1


20 belum 0

13
A01B 76 HLT Selesai

LXI H, 0000 H = Clear reg. HL

MVI D, 00 H = Clear Buffer

MOV E,A = Set bilangan yang dikali

DAD D = Jumlahkan reg. HL dengan bilangan dikali

HL= 0000 H 0000 0000 0000 0000

DE= 0064 H 0000 0000 0110 0100 +

HL= 0000 0000 0110 0100

DCR B = Mengkurangkan Pengali

B= 05 H 0000 0101

0000 0001 -

B= 04 H 0000 0100

JNZ Ulang= Ulangi jika pengali belum 0

HLT = Selesai

14
PROGRAM 4

15
Alamat Op-Code Mnemonic Komentar

9050 AF XRA A ACC=0

9051 3E-25 MVI A,25 A= 25

9053 0E-32 MVI C,32 C=32

9055 16-21 MVI D,21 D=21

9057 91 SUB C A=F3 CY=1; S=1 Z= 0 H=0 P=1

9058 9A SBB D A=D1 CY=0; S=1 Z= 0 H=0 P=1

9059 RST 7

Reg. A = D1, C = 32 H , D = 21 H , Flag : S = 1 Z =0 H= 0 P =1 Cy = 0

XRA A= Clear Acc

MVI A,25 H= Set Acc 25 H

MVI C,32 H= Set Acc reg. C 21 H

SUB C= Kurangi isi Acc dengan reg. C

A= 25 H 0010 0101

C= 32 H 0011 0010 -

A= F3 H 1111 0011

SBB D= Kurangi isi Acc dengan reg. D, dengan Cy

A= F3 H 1111 0011

D= 21 H 0010 0001 -

A= D2 H 1101 0010

RST 7= SELESAI

PROGRAM 5

16
17
Alamat Op-Code Mnemonic Komentar

90A0 AF XRA A A=0

90A1 3E-95 MVI A,95 A= 95

90A3 0E-86 MVI C,86 C= 86

90A5 16-65 MVI D,65 D=65

90A7 81 ADD C A=1B

90A8 27 DAA A=81

90A9 82 ADD D A=E6

90AA 27 DAA A=46

90AB RST 7

Reg. A = 46 H, C = 86 H , D = 65 H , Flag : S =0 Z=0 H=0 P = 0 Cy = 1

XRA A= Clear Acc

MVI A,95 H= Set isi Acc 95 H

MVI C,86 H = Set reg. C dengan data 86 H

MVI D,65 H= Set reg. D dengan data 65 H

ADD C= Jumlahkan Acc dengan reg. C

A= 95 H 1001 0101

C= 86 H 1000 0110 +

A= 1BH 0001 1011

DAA = Ubah hasil penjumlahan kedesimal

A= 1BH 0001 1011

0110 0110 +

18
A= 81 H 1000 0001

ADD D= Jumlahkan isi Acc dengan reg. D

A= 81 H 1000 0001

D= 65 H 0110 0101 +

A= E6 H 1110 0110

DAA = Ubah hasil penjumlahan ke decimal

A= E6 H 1110 0110

0110 0000 +

A= 46 H 0100 0110

RST 7= Selesai

PROGRAM 6

19
Alamat Op-Code Mnemonic Komentar

9220 3E-9A MVI A, 9A A=9A

9222 06-56 MVI B, 56 B=56

9224 0E-39 MVI C, 39 C=39

9226 91 SUB C A=61

9227 80 ADD B A=B7

9228 27 DAA A=17 CY=1

9229 76 HLT

Reg. A = 17 H, C = 39 H , B= 56 H , Flag : S = 0 Z =0 H=0 P =1 Cy =1

MVI A, 9A= Set Acc dengan data 9A H, sebagai complement 10

MVI B, 56 = Set reg. B dengan data 56 H, sebagai bilangan yang dikurang

20
MVI C, 39 = Set reg. C dengan data 39 H, sebagai bilangan pengurang

SUB C= Kurangkan Acc dengan reg. C

A=9AH 1001 1010

C=39 H 0011 1001 -

A= 61 H 0110 0001

ADD B= Jumlahkan Acc dengan reg. B

A=61 H 0110 0001

B=56 H 0101 0110 +

A= B7 H 1011 0111

DAA= Ubah hasi ke Desimal

A=B7 H 1011 0111

0110 0000 +

A= 17 H 0001 0111

HLT= Selesai

21
PROGRAM 7

22
Alamat Op-Code Mnemonic Komentar

9100 3E-00 MVI A,AC A=AC

9102 06-0F MVI B,0F B=0F

9104 0E-F0 MVI C,F0 C=F0

9106 B0 ORA B A= AFH

9107 A9 XRA C A= 5F

9108 E6-35 ANI 35 A= 15

910A 2F CMA A= EA

910B RST 7

Reg. A = EAH, C = F0 H , Flag : S =0 Z = 0 H= 0 P=0 Cy =0

MVI A,ACH= Set Acc dengan data ACH

MVI B,0FH= Set reg B dengan data 0FH

23
MVI C,F0 H= Set reg. C dengan data F0 H

ORA B= Acc di operasikan logika OR dengan reg. B

A=ACH 1010 1100

B=OFH 0000 1111 +

A= AFH 1010 1111

XRA C= Acc dioperasikan logika Ex-Or dengan reg. B

A=AFH 1010 1111

C=F0 H 1111 0000 +

A= 5FH 0101 1111

ANI 35 H= Acc dioperasikan logika AND dengan data 35 H

A=5FH 0101 1111

0011 0101 +

A= 15 H 0001 0101

CMA= Bandingkan Acc dengan data FFH

A=15 H 0001 0101

1111 1111 +

A= EAH 1110 1010

RST 7= Selesai

24
PROGRAM 8

25
Alamat Op-Code Label Mnemonic Komentar

9150 AF XRA A A=0

9151 3E-56 MVI A,56 A=56

9153 06-03 MVI B,03 B=03

9155 07 Ulang: RLC A=AC A=59 A=B2

9156 05 DCR B B=02 B=01 B=00

9157 C2-55-91 JNZ Ulang Z=0 Z=0 Z=1

915A 76 RST 7 Selesai

Reg. A = ACH , B = 00 H , Flag : S = 0 Z = 1 H= 0 P = 1 Cy =0

XRA A= Clear Acc

MVI A,56 H= Set Acc dengan data 56 H

MVI B,03 H= Set reg. B dengan data 03 H, sebagai loop

RLC= Geser isi Acc kekanan,

A= 56 H 0101 0110 Cy=0 1010 1100= ACH

DCR B= Kurangi reg. B

A=15 H 0000 0011

0000 0001 +

A= 02 H 0000 0010

JNZ Ulang= Ulangi jika loop belum 0

RST 7= Selesai

26
PROGRAM 9

27
Alamat Op-Code Label Mnemonic Komentar

9200 3E-D9 MVI A,D9 H A=D9

9202 0E-04 MVI C,04 C=04

9204 37 Ulang: STC Cy=1 Cy=1 Cy=1 Cy=1

9205 1F RAR Acc= Acc= Acc=F Acc=F


EC F6 B D

9206 0D DCR C C=03 C=02 C=01 C=00

9207 C2-04- JNZ Ulang Z= 0 Z=0 Z=0 Z=1


92

920A 76 HLT

Reg. A = ..., C = .. , D = ... , Flag : S =1 Z=0 H= 0 P = 0 Cy =1

MVI A,D9 H= Set Acc dengan data D9 H

MVI C,04 H= Set reg. C dengan data 04, sebagai loop

STC= Set Carry dengan nilai 1

RAR= Geser nilai Acc kekanan

A= D9 H 1101 1001 Cy=1 1110 1100= ECH

DCR C= Kurangi isi data reg. C

A=04 H 0000 0100

0000 0001 +

A= 03 H 0000 0011

JNZ Ulang= Ulangi jika loop belum 0

HLT = Selesai

28
Program 10.

29
Alamat Op-Code Label Mnemonic Komentar

9520 06-00 MVI B,00 B= 00H

9522 11-00- LXI D,AA00 DE=


AA AA00H

9525 1A Ulang LDAX D A= 01 A=02 A=03 A=04 A=05

9256 E6-01 ANI 01 A=01 A=00 A=01 A=00 A=01

9528 C2-5C- JNZ Ganjil Z= 0 Z=1 Z=0 Z=1 Z=0


92

952B 04 INR B B=01 B=02

952C 13 Ganjil INX D DE= DE= DE= DE=AA DE=AA


AA01 AA02 AA03 04 05

952D 7B MOV A,E A= 01 A=02 A=03 A=04 A=05

30
952E FE-06 CPI 06 S=1 Z=0 S=1 Z=0 S=1 Z=0 S=1 Z=0 S=1 Z=0
A=1 A=1 A=1 A=1 A=1
P=0 C=1 P=1 P=0 P=0 P=1
C=1 C=1 C=1 C=1

9530 C2-55-92 JNZ Ulang Z=0 Z=0 Z=0 Z=0 Z=0

9533 76 HLT

- Sebelum program dieksekusi terlebih dahulu isikan data pada alamat AA00(H)

s/d AA05(H). =01,02,03,04,05

- Eksekusi program dan periksa isi register B.

- Apakah isi register B sama dengan banyaknya bilangan yang terdapat

pada AA00(H) s/d AA05(H).

MVI B,00 H= Clear reg. B

LXI D,AA00 H= Set reg DE dengan alamat AA00 H

LDAX D= Bebani Acc dengan isi data pada alamat reg. DE, yaitu data yang ingin
diperiksa

ANI 01 = Operasikan gerbang AND pada acc dengan data 01 H

A=01 H 0000 0001

0000 0001

A= 01 H 0000 0001

JNZ Ganjil= lompat jika Z=0, jika data acc ganjil maka akan di lompatkan

INR B= Tambahkan reg. B, sebagai penghitung jumlah data yang genap

B=00 H 0000 0000

0000 0001 +

31
B= 01 H 0000 0001

INX D = Tambahkan reg. DE

DE=AA00 H 1010 1010 0000 0000

0000 0000 0000 0001 +

DE= AA01 H 1010 1010 0000 0001

MOV A,E= Pindahkan Acc dengan isi data reg. E

CPI 06= Bandingkan isi Acc dengan data 06 H, untuk memeriksa alamat data

JNZ Ulang= lompat jika Z=0, jika belum akhir maka lompat ke label Ulang

HLT = Selesai

32
PERTANYAAN DAN JAWABAN

• Pertanyaan
Buatlah program untuk dapat menjumlahkan 2 buah data 3-byte secara desimal dimana
Data-1 terdapat pada memori 8100H s/d 8102 H dan Data-2 terdapat pada memori 8110H s/d
8112 H sebagai contohisi memori 8100 H s/d 8102H =76, 63, 75sebagai Data-1 dan isi memori
8110 H s/d 8112 H adalah 98,76,78 sebagai Data-2 dengan proses sebagai berikut:

(8102) (8101) (8100) 756376 10

(8112) (8111) (8110) + 787698 10 +

(8123) (8122) (8121) (8120)

• Jawaban

A. ALGORITMA

LDAX B ADC M DAA STAX D


Ubahhasilke
1 2 3 4
Dessimal
Accumulator 8100H + Hasildisimpan =
8110H 8120H

8100 H = 76 H 8110 H = 98 H 8120 H

33
8101 H = 63 H 8111 H = 76 H 8121 H

8102 H = 75 H 8112 H = 78 H 8122 H

8123 H

B. FLOWCHART

34
START

Set alamat reg. BC

Set alamat reg. HL

Isi
Akumulatordenganalamatpada
reg. BC

Jumlahkanisiakumulatordengan
isipadamemori

UbahhasilkeDesimal

Simpanisiakumulatorpadaala
mat reg. DE

Naikkanalamat reg.BC
Naikkanalamat reg. HL
Naikkanalamat reg. DE

Periksaisialamat data

Tidak
Max+1?

Ya

SELESAI

35
C. PROGRAM

36
Analisa

37
38
39
40
KESIMPULAN

41

Anda mungkin juga menyukai