Вы находитесь на странице: 1из 33

Aritmatika Logika dan Perbandingan

Praktek Sistem Mikrokontroler

Kelompok 3

Oleh:
M Rizky Vira Aditya

Dosen Pembimbing

061540341842

: Dewi Permata Sari, S.T.,M.Kom

NIP : 1976 12132000032001

Politeknik Negeri Sriwijaya


Teknik Elektro Konsentrasi Mekatronika
Tahun 2016

Daftar Isi

Daftar Isi......................................................................................................................................i
ARITMATIKA,LOGIKA dan PERBANDINGAN....................................................................1
I.

Judul :...........................................................................................................................1

II.

Alat dan Bahan............................................................................................................1

III.

Tujuan...........................................................................................................................1

IV.

Dasar Teori...................................................................................................................1

V.

Percobaan.....................................................................................................................2

VI.

Hasil dan Analisis Percobaan.......................................................................................4

VI.1

Latihan 1...............................................................................................................4

VI.2

Latihan 2.............................................................................................................11

VI.3

Latihan 3.............................................................................................................17

VI.4

Latihan 4.............................................................................................................19

VI.5

Latihan 5.............................................................................................................24

Kesimpulan...............................................................................................................................27
Daftar Pustaka...........................................................................................................................28
Lampiran...................................................................................................................................29

Page 1
Politeknik Negeri Sriwijaya

ARITMATIKA,LOGIKA dan PERBANDINGAN

I.

Judul :
Aritmatika,Logika dan Perbandingan

II.

Alat dan Bahan


-Seperangkat Midicom LN 85 V3.0

III.

Tujuan
-Memahami berbagai operasi aritmatika,logika.
-Memahami perbandingan dua data,register dengan register

IV.

Dasar Teori

Register bendera berfungsi sebagai penanda hasil dari suatu perintah baik itu
aritmatika,logika maupun perbandingan.
Perintah tersebut dijalankan akan mempengaruhi keadaan bit register bendera
berkapasitas 8 bit dan tiap bit mempunyai arti sendiri,tampilan berikut menunjukkan fungsi
dari bit-bit tersebut.

AC -

CV

Gambar 3.1 Bit Register Bendera

Tiap register Register bendera mempunyai fungsi :

S (Sign)
Bit ini akan di set (S=1) apabila suatu operasi memberikan hasil data negatif dan (S=0) jika
data positif

Page 1
Politeknik Negeri Sriwijaya

Z (Zero)
Bit ini akan di set (Z=1) apabila suatu operasi adalah nol (0), sebaliknya akan di reset jika
data tidak sama dengan nol.

AC (Auxiliary Carry)
Apabila pada suatu operasi terjadi carry pada data bit ke 4 (D3), maka AC di set ke 1,dan
AC=0 jika tidak terdapat carry.

P (Parity)
Data berparity genap/ganjil,jika P=1 untuk parity genap dan untuk P=0 untuk parity ganjil.

CY (Carry)
Jika carry =1 terjadi carry pada bit D7 dan sebaliknya carry=0 tidak terdapat carry pada bit
D7.

V.

Percobaan

V.1

Latihan 1 membuat program di alamat B000 untuk memeriksa register bendera


Org B000
LXI H,0000
LXI B,00FF
MVI D,AA
MVI E,50
INX B
DCR C
INR D
DCR E
INR C
Page 2

Politeknik Negeri Sriwijaya

DCX H
RST 1
V.2

Latihan 2 membuat program di alamat B100 untuk memeriksa register bendera


Org B100
LXI H,B050
LXI D,B051
LXI B,A000
LDAX D
ADD M
STAX B
INR E
LDAX D
ADC M
INR C
STAX B
INR L
SUB M
MOV A,M
SUI 0F
RST 1

V.3

Latihan 3 membuat program di alamat B100 untuk pemindahan data dari register ke
register, dari register ke memori (register M) atau sebaliknya dari memori ke register.
Org B100
MVI A,00
MVI B,97
MVI C,38
MOV A,B
Page 3

Politeknik Negeri Sriwijaya

ADD C
RST 1
V.4

Latihan 4 membuat program di alamat B200 untuk operasi logika.


Org B200
MVI A,AA
MVI B,BB
ANI 55
XRA B
ORA B
ANA B
CMA
CMC
RST 1

V.5

Latihan 5 membuat program di alamat B300 untuk perbandingan data pada suatu
register.
Org B300
MVI A,E3
MVI B,A0
CMP B
CPI 43
CPI FD
RST 1

Page 4
Politeknik Negeri Sriwijaya

VI.

Hasil dan Analisis Percobaan

VI.1

Latihan 1

Pada latihan ini, kita mempelajari penggunaan instruksi INR,INX,DCR,DCX. Semua


instruksi ini adalah termasuk dalam instruksi aritmatika. Berikut adalah penjelasan mengenai
instruksi ini:
INR berfungsi untuk menambahkan 1 pada register yang ditentukan. INR dibuat
dengan format:
INR register
INX berfungsi untuk menambahkan 1 pada pasangan register yang ditentukan.
INX dibuat dengan format:
INX register pasangan
DCR berfungsi untuk mengurangi 1 pada register yang ditentukan. DCR dibuat
dengan format:
DCR register
DCX berfungsi untuk mengurangi 1 pada register yang ditentukan. DCX dibuat
dengan format:
DCR register pasangan
Simbol X menandakan bahwa data tersebut akan berpengaruh pada pasangan register
(16 bit).
Setelah mengetahui fungsi dari masing-masing instruksi yang akan digunakan, maka
kita memulai latihan dengan menekan tombol R untuk memunculkan register awal.
ESC

Data yang akan muncul adalah sebagai berikut:


-R:Read/Set Register
Register
PC

BC

DE

HL

SZxAxPxC

0008

00

0615

4034

1842

F5

34

ap

SP

(SP)

60CE

830A

Setelah melihat data awal pada register maka sekarang masukkan instruksi tersebut
dengan menggunakan assembler.

ESC

A
Page 5

Politeknik Negeri Sriwijaya

-A= Assembler
Adr.:= A000
Alamat

Kode Mesin

Mnemonik

A000

21 0000

LXI H,0000

A003

01 FF00

LXI B,00FF

A006

16 AA

MVI D,AA

A008

1E 50

MVI E,50

A00A

03

INX B

A00B

0D

DCR C

A00C

14

INR D

A00D

1D

DCR E

A00E

OC

INR C

A00F

2B

DCX H

A010

CF

RST 1

Penjelasan mengenai data pada assembler:


LXI H,0000 yang artinya memindahkan data 0000 kedalam pasangan register HL
pada address A000
LXI B,00FF yang artinya memindahkan data 00FF kedalam pasangan register BC
pada address A000
MVI D,AA yang artinya memindahkan data AA kedalam register D pada address
A000
MVI E,50 yang artinya memindahkan data 50 kedalam register E pada address
A000
INX B yang artinya menambahkan 1 pada data di pasangan register B
DCR C yang artinya mengurangi 1 pada data di register C
INR D yang artinya menambahkan 1 pada data di register D
DCR E yang artinya mengurangi 1 pada data di register E
INR C yang artinya menambahkan 1 pada data di register C
DCX H yang artinya mengurangi 1 pada data di pasangan register H

Page 6
Politeknik Negeri Sriwijaya

Setelah mengisi assembler dengan data yang ditentukan, kali ini kita menggunakan
Trace Memory [T]. Trace memory digunakan untuk melihat perubahan data step by step yang
dikerjakan oleh assembler dari awal hingga RST 1. Berikut adalah hasil dari Trace Memory:
-Trace / Single Step
Start Adr.:=A000
PC
Register Awal
LXI
LXI

H,000
0
B,00F
F

A
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0001
A003
A006

MVI

D,AA

A008

MVI

E,50

INX

DCR

INR

DCR

INR

DCX

A010

RST

0008

A00
A
A00
B
A00
C
A00
D
A00
E
A00
F

BC

DE

HL

0615

4034

1842

F5

34

a p

0615

4034

0000

34

a p

00FF

4034

0000

34

a p

34

a p

34

a p

14

a p

00FF
00FF
0100
01FF
01FF
01FF
0100
0100
0100

AA3
4
AA5
0
AA5
0
AA5
0
AB5
0
AB4
F
AB4
F
AB4
F
AB4
F

0000
0000
0000
0000
0000
0000
0000
FFF
F
FFF
F

A
F
A
F
A
F
A
F
A
F
A
F
A
F
A
F
A
F

A
4
A
0

SZxAxPxC

00
54

z a p

61

74

z a p

61

74

z a p

SP
60C
E
60C
E
60C
E
60C
E
60C
E
60C
E
60C
E
60C
E
60C
E
60C
E
60C
E
60C
C

<SP
>
830A
830A
830A
830A
830A
830A
830A
830A
830A
830A
830A
A011

*Tampilan tabel diatas saya modifikasi tambahan data Register Awal untuk melihat
perubahan setiap datanya.
Penjelasan:
a.
b.
c.
d.

LXI H,0000
LXI B,00FF
MVI D,AA
MVI E,50

:
:
:
:
e.

Perubahan terdapat pada pasangan register HL menjadi 0000


Perubahan terdapat pada pasangan register BC menjadi 00FF
Perubahan terdapat pada register D menjadi AA
Perubahan terdapat pada register E menjadi 50
INX B :
Perubahan pada data pasangan register BC. Jika
kita menggunakan INX pada pasangan register B, Data yang
semulanya adalah 00FF, jika kita tambahkan 1 maka data akan
seperti berikut:
Page 7

Politeknik Negeri Sriwijaya

00FF dalam biner 16 bit adalah


0000 0000 1111 1111
0000 0000 0000 0001

ditambahkan 1
+

0000 0001 0000 0000


Hasilnya menjadi 0100 dalam hexadecimal
Instruksi INX ini tidak mempengaruhi register bendera
f. DCR C :
Perubahan pada data C. Jika kita menggunakan
DCR kita hanya mengubah data pada register C bukan pasangan
register BC, Data yang semulanya adalah 0100, jika kita
kurangkan 1 maka data akan seperti berikut:
0100 dalam biner 16 bit adalah
0000 0001 0000 0000
0000 0000 0000 0001

dikurangkan 1
-

0000 0001 1111 1111


Hasilnya menjadi 01FF dalam hexadecimal
Mengapa hasilnya tidak kembali menjadi 00FF? karena
pengurangan menggunakan DCR hanya mengurangi register
yang ditujukan. Tetapi FF disini menggambarkan hasil
negatif/minus yang ditandai oleh register bendera.
Register bendera s=1 menunjukkan bahwa hasil data negatif
Register bendera z=0 menunjukkan bahwa hasil operasi tidak
sama dengan 0
Register bendera a=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D3
Register bendera p=1 menunjukkan parity 1 yang genap di 8 bit
pada register C
Register bendera c=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D7
g. INR D : Perubahan pada data D. Jika kita menggunakan INR
kita hanya mengubah data pada register D bukan pasangan
register DE, Data yang semulanya adalah AA50, jika kita
tambahkan 1 maka data akan seperti berikut:

Page 8
Politeknik Negeri Sriwijaya

AA50 dalam biner 16 bit adalah


1010 1010 0101 0000
0000 0001 0000 0000

ditambahkan 1
+

1010 1011 0101 0000


Hasilnya menjadi AB50 dalam hexadecimal
Hasilnya menjadi AB50, bisa kita lihat tidak ada perubahan pada
data di register E, perubahan hanya terjadi di register D karena
menggunakan kode INR. Register bendera yang tampil adalah s.
Register bendera s=1 menunjukkan bahwa hasil data negatif
Register bendera z=0 menunjukkan bahwa hasil operasi tidak
sama dengan 0
Register bendera a=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D3
Register bendera p=0 menunjukkan parity 1 yang ganjil di 8 bit
pada register D
Register bendera c=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D7
h. DCR E :
Perubahan pada data E. Kita mengubah data
pada register E bukan pasangan register DE, Data yang
semulanya adalah AB50, jika kita kurangkan 1 maka data akan
seperti berikut:
AB50 dalam biner 16 bit adalah
1010 1011 0101 0000
0000 0000 0000 0001

dikurangkan 1
-

1010 1011 0100 1111


Hasilnya menjadi AB4F dalam hexadecimal
Pengurangan menggunaan DCR dengan hasil AB4F tidak
menghasilkan register bendera
Register bendera s=0 menunjukkan bahwa hasil data positif
Register bendera z=0 menunjukkan bahwa hasil operasi tidak
sama dengan 0
Register bendera a=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D3
Register bendera p=0 menunjukkan parity 1 ganjil yang di 8 bit
pada register E
Page 9
Politeknik Negeri Sriwijaya

Register bendera c=0 menunjukkan bahwa hasil operasi tidak


memiliki carry pada D7
i. INR C : Perubahan pada data C. Jika kita menggunakan INR
kita hanya mengubah data pada register C bukan pasangan
register BC, Data yang semulanya adalah 01FF, jika kita
tambahkan 1 maka data akan seperti berikut:
01FF dalam biner 16 bit adalah
0000 0001 1111 1111
0000 0000 0000 0001

ditambahkan 1
+

0000 0001 0000 0000


Hasilnya menjadi 0100 dalam hexadecimal
Hasilnya menjadi 0100, bisa kita lihat tidak ada perubahan pada
data di register B, mengapa hasil bukan 0200? Karena perubahan
hanya terjadi di register C yang disebabkan oleh penggunaan
kode INR. Register bendera yang tampil adalah z a p.
Register bendera s=0 menunjukkan bahwa hasil data positif
Register bendera z=1 menunjukkan bahwa hasil operasi pada
data C sama dengan 0
Register bendera a=1 menunjukkan bahwa hasil operasi
memiliki carry pada D3
Register bendera p=1 menunjukkan parity 0 yang genap di 8 bit
pada register C
Register bendera c=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D7
j. DCX H :
Perubahan pada data pasangan register HL. Jika
kita menggunakan DCX pada pasangan register H, Data yang
semulanya adalah 0000, jika kita kurangkan 1 maka data akan
seperti berikut:
0000 dalam biner 16 bit adalah
0000 0000 0000 0000
0000 0000 0000 0001

dikurangkan 1
+

1111 1111 1111 1111


Hasilnya menjadi FFFF dalam hexadecimal
Instruksi DCX ini tidak mempengaruhi register bendera.
Page 10
Politeknik Negeri Sriwijaya

Setelah seluruh prosedur terlihat, maka mendapatkan hasil akhir seperti berikut:
PC

BC

DE

HL

A010

00

0100

AB4F

FFFF

61

74

VI.2

SZxAxPxC

SP

(SP)

60CE

830A

Latihan 2

Latihan 2 ini kita menemukan instruksi baru yaitu ADD,ADC, SUB dan SUI. Masingmasing instruksi mempunyai fungsi yang berbeda. Berikut adalah penjelasannya:
ADD berfungsi untuk menambahkan suatu data register ke akumulator. ADD
dibuat dengan format :
ADD register
ADC berfungsi untuk menambahkan suatu data register dengan carry ke
akumulator. ADC dibuat dengan format:
ADD register
SUB berfungsi untuk mengurangkan isi akumulator dengan data yang berada pada
register. SUB dibuat dengan format:
SUB register
SUI berfungsi untuk mengurangkan isi akumulator dengan konstanta 8 bit. SUI
dibuat dengan format:
SUI konstanta
Setelah mengetahui fungsi dari masing-masing instruksi yang akan digunakan, maka
kita memulai latihan dengan menekan tombol R untuk memunculkan register awal.
ESC

Data yang akan muncul adalah sebagai berikut:


-R:Read/Set Register
Register
PC

BC

DE

HL

SZxAxPxC

SP

(SP)

0008

00

0100

AB4F

FFFF

61

74

z ap

60CC

A011

Setelah melihat data awal pada register maka sekarang masukkan instruksi tersebut
dengan menggunakan assembler.
ESC

Page 11
Politeknik Negeri Sriwijaya

-A= Assembler
Adr.:= A000
Alamat

Kode Mesin

Mnemonik

A100

21 50A0

LXI H,A050

A103

11 51A0

LXI D,A051

A106

01 00A0

LXI B,A000

A109

1A

LDAX D

A10A

86

ADD M

A10B

02

STAX B

A10C

1C

INR E

A10D

1A

LDAX D

A10E

8E

ADC M

A10F

0C

INR C

A010

02

STAX B

A111

2C

INR L

A112

96

SUB M

A113

7E

MOV A,M

A114

D6 0F

SUI 0F

A116

CF

RST 1

Penjelasan mengenai data pada assembler:


LXI H,A050 yang artinya memindahkan data A050 kedalam pasangan register HL
pada address A100
Page 12
Politeknik Negeri Sriwijaya

LXI D,A051 yang artinya memindahkan data A051 kedalam pasangan register DE
pada address A100
LXI B,A000 yang artinya memindahkan data A000 kedalam pasangan register BC
pada address A100
LDAX B yang artinya mengisi akumulator dengan data yang terdapat pada alamat
yang ditujukan oleh pasangan register B
ADD M yang artinya menambahkan akumulator dengan data dari register M
STAX B yang artinya menyimpan isi akumulator kedalam lokasi memori yang
ditujukan oleh pasangan register B
INR E yang artinya menambahkan 1 pada data di register E
LDAX D yang artinya mengisi akumulator dengan data yang terdapat pada alamat
yang ditujukan oleh pasangan register D
ADC M yang artinya menambahkan akumulator dengan data beserta carry dari
register M
INR C yang artinya menambahkan 1 pada data di register C
STAX B yang artinya menyimpan isi akumulator kedalam lokasi memori yang
ditujukan oleh pasangan register B
INR L yang artinya menambahkan 1 pada data di register L
SUB M yang artinya mengurangi akumulator dengan data di register M
MOV A,M yang artinya memindahkan data pada register M (memori) ke register
A (akumulator)
SUI 0F yang artinya mengurangi akumulator dengan konstanta 0F
Setelah mengisi assembler dengan data yang ditentukan, kali ini kita menggunakan
Trace Memory [T]. Trace memory digunakan untuk melihat perubahan data step by step yang
dikerjakan oleh assembler dari awal hingga RST 1. Berikut adalah hasil dari Trace Memory:
-Trace / Single Step
Start Adr.:=A100

Register Awal
LXI
LXI
LXI

H,A05
0
D,A05
1
B,A00
0

LDA
X

ADD

STA
X

PC

BC

DE

HL

0008

00

0100

AB4
F

A103 00

0100

A051

A106 00

A000

A051

A109 00

A000

A051

00

A000

A051

54

A000

A051

54

A000

A051

FFF
F
A05
0
A05
0
A05
0
A05
0
A05
0
A05
0

A10
A
A10
B
A10
C

Page 13
Politeknik Negeri Sriwijaya

SZxAxPx
C

54

74

z a p

54

74

z a p

54

74

z a p

54

74

z a p

54

74

z a p

54

00

54

00

SP
60C
C
60C
C
60C
C
60C
C
60C
C
60C
C
60C
C

<SP
>
A011
A011
A011
A011
A011
A011
A011

A10
D
A10
E
A10
F

INR

LDA
X

ADC

INR

A110

STA
X

A111

INR

A112

SUB

A113

MOV

A,M

A114

SUI

0F

A116

RST

54

A000

A052

A000

A052

A000

A052

A001

A052

A001

A052

A001

A052

A001

A052

00

A001

A052

F
1

A001

A052

C
7
1
B
1
B
1
B
1
B
1
B

A05
0
A05
0
A05
0
A05
0
A05
0
A05
1
A05
1
A05
1
A05
1

54

00

54

00

54

05

p c

54

01

54

01

00

01

00

14

a p

00

14

a p

00

A
1

60C
C
60C
C
60C
C
60C
C
60C
C
60C
C
60C
C
60C
C
60C
C

A011
A011
A011
A011
A011
A011
A011
A011
A011

1
Penjelasan:
a. LXI H,A050 :
b. LXI D,A051 :
c. LXI B,A000 :
d.

Perubahan terdapat pada pasangan register HL menjadi A050


Perubahan terdapat pada pasangan register DE menjadi A051
Perubahan terdapat pada pasangan register BC menjadi A000
LDAX D :
Pengisian akumulator dengan data yang
ditujukan oleh lokasi memori register yaitu alamat A051. Tetapi
karena data pada alamat A051 adalah 00 maka data pada
Akumulator tidak berubah
e. ADD M :
Menambahkan akumulator dengan data yang
terdapat pada memori, karena akumulator 00 maka 00 + 54 = 54.
Dan hasil dari akumulator adalah 54. Pada saat instruksi ADD
dijalankan, semua register flag tidak tampil maka:
Register bendera s=0 menunjukkan bahwa hasil data positif
Register bendera z=0 menunjukkan bahwa hasil operasi tidak
sama dengan 0
Register bendera a=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D3
Register bendera p=0 menunjukkan parity 1 yang ganjil di 8 bit
pada register E
Register bendera c=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D7
f. STAX B :
Menyimpan isi akumulator dari alamat A100
kedalam lokasi alamat B yaitu A000. Jadi, data pada alamat
A000 adalah 54
g. INR E :
Perubahan data pada register E. Jika kita
menggunakan INR kita hanya mengubah data pada register E
Page 14

Politeknik Negeri Sriwijaya

bukan pasangan register DE, Data yang semulanya adalah A051,


jika kita tambahkan 1 maka data akan seperti berikut:
AA50 dalam biner 16 bit adalah
1010 0000 0101 0001
0000 0000 0000 0001

ditambahkan 1
+

1010 0000 0101 0010


Hasilnya menjadi A052 dalam hexadecimal
Setelah menambahkan 1 pada data diregister E, maka register
bendera yang tampil tetap tidak ada
Register bendera s=0 menunjukkan bahwa hasil data positif
Register bendera z=0 menunjukkan bahwa hasil operasi tidak
sama dengan 0
Register bendera a=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D3
Register bendera p=0 menunjukkan parity 1 yang ganjil di 8 bit
pada register E
Register bendera c=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D7
h. LDAX D :
Pengisian akumulator dengan data yang
ditujukan oleh lokasi memori register yaitu alamat A052. Data
yang terdapat pada alamat A052 adalah C7 maka yang terdapat
diakumulator adalah C7
i. ADC M :
Penambahan akumulator dengan data pada
memory beserta carry. Saat ini, akumulator berisi data C7 dan
memori berisi 54, Maka yang terjadi adalah:
c7 dalam biner 16 bit adalah
1100 0111
0101 0100

ditambahkan 54
+

0001 1011
Hasilnya menjadi 1B dalam hexadecimal
Hasil dari 1B terbukti pada akumulator. Register flag yang
muncul adalah p c
Register bendera s=0 menunjukkan bahwa hasil data positif
Register bendera z=0 menunjukkan bahwa hasil operasi tidak
sama dengan 0
Register bendera a=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D3

Page 15
Politeknik Negeri Sriwijaya

Register bendera p=1 menunjukkan parity 1 yang genap di 8 bit


pada register E
Register bendera c=1 menunjukkan bahwa hasil operasi memiliki
carry pada D7
j. INR C :
Perubahan data pada register C. Jika kita
menggunakan INR kita hanya mengubah data pada register C
bukan pasangan register BC, Data yang semulanya adalah A000,
jika kita tambahkan 1 maka data akan seperti berikut:
A000 dalam biner 16 bit adalah
1010 0000 0000 0000
0000 0000 0000 0001

ditambahkan 1
+

1010 0000 000 0001


Hasilnya menjadi A001 dalam hexadecimal
Setelah menambahkan 1 pada data diregister E, maka register
bendera yang tampil adalah c
Register bendera s=0 menunjukkan bahwa hasil data positif
Register bendera z=0 menunjukkan bahwa hasil operasi tidak
sama dengan 0
Register bendera a=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D3
Register bendera p=0 menunjukkan parity 1 yang ganjil di 8 bit
pada register E
Register bendera c=1 menunjukkan bahwa hasil operasi memiliki
carry pada D7 bawaan dari data yang lama
k. STAX B :
Menyimpan isi akumulator dari alamat A100
kedalam lokasi alamat B yaitu A001. Jadi, data pada alamat
A001 adalah 1B
l. INR L :
Perubahan data pada register L. Jika kita
menggunakan INR kita hanya mengubah data pada register L
bukan pasangan register HL, Data yang semulanya adalah A050,
jika kita tambahkan 1 maka data akan seperti berikut:
A050 dalam biner 16 bit adalah
1010 0000 0101 0000
0000 0000 0000 0001

ditambahkan 1
+

1010 0000 0101 0001


Hasilnya menjadi A051 dalam hexadecimal
Setelah menambahkan 1 pada data diregister E, maka register
bendera yang tampil adalah c
Page 16
Politeknik Negeri Sriwijaya

Register bendera s=0 menunjukkan bahwa hasil data positif


Register bendera z=0 menunjukkan bahwa hasil operasi tidak
sama dengan 0
Register bendera a=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D3
Register bendera p=0 menunjukkan parity 1 yang ganjil di 8 bit
pada register E
Register bendera c=1 menunjukkan bahwa hasil operasi memiliki
carry pada D7 bawaan dari data yang lama
m. SUB M :
Berfungsi mengurangi data pada akumulator
dengan data register M. maka jika dikurangkan dengan data M
yaitu 00 maka tidak terjadi perubahan pada akumulator.
n. MOV A,M
:
Memindahkan data dari memori yaitu
00 ke akumulator sehingga akumulator menjadi 00
o. SUI 0F :
Data pada akumulator dikurangkan dengan
konstanta 0F maka hal yang terjadi adalah:
00 dalam biner 8 bit adalah
0000 0000
0000 FFFF

dikurangkan 0F
-

FFFF 1111
Hasilnya menjadi F1 dalam hexadecimal
Setelah menambahkan 1 pada data diregister E, maka register
bendera yang tampil adalah s dan c
Register bendera s=1 menunjukkan bahwa hasil data negatif
Register bendera z=0 menunjukkan bahwa hasil operasi tidak
sama dengan 0
Register bendera a=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D3
Register bendera p=0 menunjukkan parity 1 yang ganjil di 8 bit
pada register E
Register bendera c=1 menunjukkan bahwa hasil operasi memiliki
carry pada D7
VI.3

Latihan 3

Pada latihan ketiga, kita melakukan operasi logika penambahan yang menggunakan
instruksi ADD. ADD disini, ditujukan untuk menambahkan data yang terdapat pada register C
ke akumulator. Untuk melihat data awalnya, kita melihat data pada register dengan menekan:
ESC

Data yang akan muncul adalah sebagai berikut:

Page 17
Politeknik Negeri Sriwijaya

-R:Read/Set Register
Register
PC

BC

DE

HL

SZxAxPxC

0008

F1

A001

A052

A051

00

A1

SP

(SP)

60CA

A117

Setelah melihat data awal pada register maka sekarang masukkan instruksi tersebut
dengan menggunakan assembler.

ESC

-A= Assembler
Adr.:= A100
Alamat

Kode Mesin

Mnemonik

A100

3E 00

A,00

A102

06 97

MVI B,97

A104

0E 38

MVI C,38

A106

78

MOV A,B

A107

81

ADD C

A108

CF

RST 1

Penjelasan mengenai data pada assembler:


MVI A,00 yang artinya mengisi akumulator dengan data 00 pada alamat A100
MVI B,97 yang artinya mengisi register B dengan data 97 pada alamat A100
MVI C,38 yang artinya mengisi register C dengan data 38 pada alamat A100
MOV A,B yang artinya memindahkan data dari register B ke akumulator
( register A)
ADD C yang artinya menambahkan data pada register C ke akumulator

Setelah kita menginput data pada assembler, sekarang kita menggunakan trace
memory untuk melihat perubahan data yang terjadi
ESC
Page 18
Politeknik Negeri Sriwijaya

-Trace / Single Step


Start Adr.:=A100

Register
Awal

PC

BC

0008

F1

A001

MVI

A,00

A102

00

A001

MVI

B,97

A104

00

9701

MVI

C,38

A106

00

9738

MO
V

A,B

A107

97

9738

ADD

A108

RST

A10
A

C
F
C
F

9738
9738

DE

HL

A05
2
A05
2
A05
2
A05
2
A05
2
A05
2
A05
2

A05
1
A05
1
A05
1
A05
1
A05
1
A05
1
A05
1

M
00
00
00
00
00
00
00

F
A
1
A
1
A
1
A
1
A
1
A
1
A
4

SZxAxPxC
s

SP
60C
A
60C
A
60C
A
60C
A
60C
A
60C
A
60C
A

<SP
>
A117
A117
A117
A117
A117
A117
A117

Penjelasan:
a. MVI A,00
b. MVI B,97
c. MVI C,38

: Perubahan terdapat pada akumulator A menjadi 00


: Perubahan terdapat pada register B menjadi 97
: Perubahan terdapat pada register C menjadi 38
d. MOV A,B
:
Pemindahan data dari register B ke
akumulator, jadi data pada akumulator sama dengan data pada B
yaitu 97
e. ADD C :
Menambahkan akumulator dengan data yang
terdapat pada register C yang berarti menambahkan 97 dengan
38 dalam bentuk Hexadecimal
97 dalam biner 8 bit adalah
1001 0111
0011 1000

ditambahkan 38
+

1100 1111
Hasilnya menjadi CF dalam hexadecimal
Pada hasil diatas, register bendera yang muncul adalah s dan p
Register bendera s=1 menunjukkan bahwa hasil data negatif
Page 19
Politeknik Negeri Sriwijaya

Register bendera z=0 menunjukkan bahwa hasil operasi tidak


sama dengan 0
Register bendera a=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D3
Register bendera p=1 menunjukkan parity 1 yang genap di 8 bit
pada akumulator
Register bendera c=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D7
VI.4

Latihan 4

Pada latihan 4, kita menemukan beberapa instruksi baru yaitu ANI, XRA, ORA, ANA,
CMA dan CMC. Berikut penjelasan mengenai beberapa instruksi tersebut:
ANI berfungsi untuk melakukan operasi AND antara isi akumulator dengan suatu

konstanta. ANA ditulis dengan format:


ANI konstanta
XRA berfungsi untuk melakukan operasi XOR antara akumulator dengan register

yang ditentukan dan mempengaruhi isi dari register bendera. XRA ditulis dengan
format:
XRA reg
ORA berfungsi untuk melakukan operasi OR antara register dengan akumulator.

ORA ditulis dengan format:


ORA reg
ANA berfungsi untuk melakukan operasi AND antara akumulator dengan register

yang ditentukan. ANA ditulis dengan format:


ANA reg
CMA berfungsi untuk melakukan operasi NOT pada isi akumulator. CMA ditulis

dengan format:
CMA
CMC berfungsi untuk membalikkan keadaan logika dengan carry flag (CY = YC).

CMC ditulis dengan format:


CMC
Setelah mengetahui fungsi dari masing-masing instruksi yang akan digunakan, maka
kita memulai latihan dengan menekan tombol R untuk memunculkan register awal.
ESC
Page 20
Politeknik Negeri Sriwijaya

Data yang akan muncul adalah sebagai berikut:


-R:Read/Set Register
Register
PC

BC

DE

HL

A108

CF

9738

A052

A051

00

A4

SZxAxPxC
s

SP

(SP)

60CA

A117

Setelah melihat data awal pada register maka sekarang masukkan instruksi tersebut
dengan menggunakan assembler.

ESC

-A= Assembler
Adr.:= A200
Alamat

Kode Mesin

Mnemonik

A200

3E AA

MVI A,AA

A202

06 BB

MVI B,BB

A204

E6 55

ANI 55

A206

A8

XRA B

A207

B0

ORA B

A208

A0

ANA B

A209

2F

CMA

A20A

3F

CMC

A20B

CF

RST 1

Page 21
Politeknik Negeri Sriwijaya

Penjelasan mengenai data pada assembler:


MVI A,AA yang artinya memasukkan data AA ke akumulator pada alamat A200
MVI B,BB yang artinya memasukkan data BB ke register B pada alamat A200
ANI 55 yang artinya melakukan operasi AND dengan konstanta sebesar 55

terhadap akumulator
XRA B yang artinya melakukan operasi XOR antara akumulator dengan fata

pada register B
ORA B yang artinya melakukan operasi OR antara akumulator dengan data pada
register B
ANA B yang artinya melakukan operasi AND antara akumulator dengan data
pada register B
CMA dan CMC telah dijelaskan pada bagian register
Setelah kita menginput data pada assembler, sekarang kita menggunakan trace
memory untuk melihat perubahan data yang terjadi
ESC

-Trace / Single Step


Start Adr.:=A200
PC
Register
Awal

0008

MVI

A,AA

A202

MVI

B,BB

A204

ANI

55

A206

XRA

A207

ORA

A208

ANA

A209

CM
A
CM
C
RST

A20
A
A20
B
1

0008

BC

C
F
A
A
A
A

BB38

00

BB38

B
B
B
B
B
B

9738

BB38

BB38
BB38
BB38

44

BB38

44

BB38

44

BB38

DE

HL

A05
2
A05
2
A05
2
A05
2
A05
2
A05
2
A05
2
A05
2
A05
2
A05
2

A05
1
A05
1
A05
1
A05
1
A05
1
A05
1
A05
1
A05
1
A05
1
A05
1

Page 22
Politeknik Negeri Sriwijaya

M
00
00
00
00
00
00
00
00
00
00

F
A
4
A
4
54
A
4
A
4
B
4
B
4
B
4
B
5
B
5

SZxAxPxC
s

a
c
s a
c

SP
60C
A
60C
A
60C
A
60C
A
60C
A
60C
A
60C
A
60C
A
60C
A
60C
A

<SP
>
A117
A117
A117
A117
A117
A117
A117
A117
A117
A117

Penjelasan:
a. MVI A,AA
:
Perubahan terdapat pada akumulator A
menjadi AA
b. MVI B,BB : Perubahan terdapat pada register B menjadi BB
c. ANI 55 :
Perubahan terdapat pada akumulator, sebelum
instruksi ANI diinput isi register adalah AA tetapi setelah diinput
dengan operasi logika AND maka akumulator menjadi 00.
Register yang tampil juga berubah menjadi z a p .
Register bendera s=0 menunjukkan bahwa hasil data positif
Register bendera z=1 menunjukkan bahwa hasil operasi sama
dengan 0
Register bendera a=1 menunjukkan bahwa hasil operasi memiliki
carry pada D3
Register bendera p1 menunjukkan parity 1 yang genap di 8 bit
pada register E
Register bendera c=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D7
d. XRA A,B :
Perubahan terdapat pada akumulator dari 00
menjadi BB, itu artinya instruksi XRA melakukan operasi logika
XOR antara register B dan akumulator. Register yang
berpengaruh adalah s dan p
Register bendera s=1 menunjukkan bahwa hasil data negatif
Register bendera z=0 menunjukkan bahwa hasil operasi tidak
sama dengan 0
Register bendera a=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D3
Register bendera p1 menunjukkan parity 1 yang genap di 8 bit
pada register E
Register bendera c=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D7
e. ORA B :
Fungsi dari ORA B adalah melakukan operasi
logika OR antara data pada register B dan akumulator. Register
bendera yang muncul adalah s dan p
Register bendera s=1 menunjukkan bahwa hasil data negative
Page 23
Politeknik Negeri Sriwijaya

Register bendera z=0 menunjukkan bahwa hasil operasi tidak


sama dengan 0
Register bendera a=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D3
Register bendera p1 menunjukkan parity 1 yang genap di 8 bit
pada register E
Register bendera c=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D
f. ANA B :
Perintah ANA B yang diperintahkan adalah
melakukan operasi logika AND antara data pada register B dan
akumulator. Register bendera yang muncul adalah s, a dan p
Register bendera s=1 menunjukkan bahwa hasil data negative
Register bendera z=0 menunjukkan bahwa hasil operasi tidak
sama dengan 0
Register bendera a=1 menunjukkan bahwa hasil operasi memiliki
carry pada D3
Register bendera p1 menunjukkan parity 1 yang genap di 8 bit
pada register E
Register bendera c=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D
g. CMA :
CMA ini adalah melakukan operasi NOT pada
register A (Akumulator) tetapi tidak mempengaruhi register
bendera. Perubahan terdapat pada akumulator dari BB menjadi
44
h. CMC
:
CMC ini adalah instruksi untuk membalikkan
keadaan logika dan carry flag ( CY = YC), CMC ini
mempengaruhi register bendera s dan p.
Register bendera s=1 menunjukkan bahwa hasil data negative
Register bendera z=0 menunjukkan bahwa hasil operasi tidak
sama dengan 0
Register bendera a=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D3

Page 24
Politeknik Negeri Sriwijaya

Register bendera p1 menunjukkan parity 1 yang genap di 8 bit


pada register E
Register bendera c=0 menunjukkan bahwa hasil operasi tidak
memiliki carry pada D
VI.5

Latihan 5

Pada latihan 5, kita melihat instruksi baru yaitu instruksi CMP dan CPI. Penjelasan
mengenai instruksi tersebut adalah sebagai berikut:
CMP berfungsi untuk membandingan isi akumulator dengan isi register, CMP

dibuat dengan format:


CMP reg
CPI berfungsi untuk membandingan isi akumulator dengan konstanta, CPI dibuat

dengan format:
CPI konstanta
Setelah mengetahui fungsi dari masing-masing instruksi yang akan digunakan, maka
kita memulai latihan dengan menekan tombol R untuk memunculkan register awal.
ESC

Data yang akan muncul adalah sebagai berikut:


-R:Read/Set Register
Register
PC

BC

DE

HL

90FF

64

0615

4034

1842

F5

54

SZxAxPxC
z

a p

SP

(SP)

60D0

827F

Setelah melihat data awal pada register maka sekarang masukkan instruksi tersebut
dengan menggunakan assembler.

ESC

-A= Assembler
Adr.:= A300
Alamat

Kode Mesin

Mnemonik

A300

3E E3

MVI A,E3

Page 25
Politeknik Negeri Sriwijaya

A302

06 A0

MVI B,A0

A304

B8

CMP B

A305

FE 43

CPI 43

A307

FE FD

CPI FD

A309

CF

RST 1

Penjelasan mengenai data pada assembler:

MVI A,EA yang artinya memasukkan data EA ke akumulator pada alamat A300
MVI B,A0 yang artinya memasukkan data A0 ke register B pada alamat A300
CMP B yang artinya memandingkan isi akumulator dengan register B
CPI 43 yang artinya memandingkan isi akumulator dengan konstanta 43
CPI FD yang artinya memandingkan isi akumulator dengan konstanta FD

Setelah kita menginput data pada assembler, sekarang kita menggunakan trace
memory untuk melihat perubahan data yang terjadi
ESC

-Trace / Single Step


Start Adr.:=A300

Register
Awal

PC

BC

0008

44

BB38

MVI

A,E3

A302 E3

A038

MVI

B,A0

A304 E3

A038

CM
P

A305 E3

A038

CPI

43

A307 E3

A038

CPI

FD

A309 E3

A038

RST

0008

A038

E3

DE

HL

A05
2
A05
2
A05
2
A05
2
A05
2
A05
2
A05
2

A05
1
A05
1
A05
1
A05
1
A05
1
A05
1
A05
1

M
00
00
00
00
00
00
00

F
B
5
B
5
10
B
4
A
1
A
1
A
1

SZxAxPxC
s

a p c

a p c

a p c
a

a p

SP
60C
8
60C
B
60C
B
60C
B
60C
B
60C
B
60C
6

<SP
>
A20
C
A117
A117
A117
A117
A117
A117

Penjelasan:
a. MVI A,E3
: Perubahan terjadi terhadap register A atau
akumulator dari 44 menjadi E3
b. MVI B,A0 : Perubahan terdapat pada register B dari BB menjadi A0
Page 26
Politeknik Negeri Sriwijaya

c. CMP B :
Perubahan terdapat pada register bendera
setelah dimasukkan instruksi CMP yang artinya membandingkan
isi register B dengan akumulator. Register bendera yang tampil
adalah a yang artinya terdapat carry pada bit ke 4.
d. CPI 43 :
Perubahan kembali terlihat pada register
bendera yang menyebabkan bendera s a dan p muncul. CPI 43
ini mempunyai fungsi untuk membandingkan isi akumulator
dengan konstanta. Bendera s=1 yang artinya memberikan hasil data
negatif

Bendera a=1 yang artinya terdapat carry pada data bit ke 3 (D3)
Bendera p=1 yang artinya data parity genap
e.

CPI FD :
Sama seperti hal yang diatas, CPI membandingkan
FD dengan isi akumulator sehingga menghasilkan perubahan pada
register
bendera
s
dan
c

Bendera s=1 yang artinya data memberikan hasil yang negatif


Bendera c=1 yang artinya terjadi carry pada bit D7

Page 27
Politeknik Negeri Sriwijaya

Kesimpulan
Dari 5 latihan yang kita lakukan pada Percobaan 3, kita dapat menarik kesimpulan
bahwa:
Midicom 8085 ini mempunyai 70 bentuk instruksi, salah satunya yaitu Kelompok
instruksi Aritmatika. Sebenarnya banyak sekali instruksi yang terdapat didalam kelompok
aritmatika ini seperti ADD, ADI,ADC, ACI, SUB, SUI, SBB, SBI, INR, DCR, INX, DCX,
DAD dan DAA. Tetapi kita hanya menggunakan beberapa instruksi tersebut.
Selain mempelajari mengenai instruksi baru yang terdapat pada midicom 8085, kita
juga menpelajari mengenai register penanda yang sebelumnya tidak dipelajari pada percobaan
1 dan 2. Adapun beberapa contoh instruksi yang menggunakan register flag yaitu ADD, SUB,
ADI, SUI, ADC, SBB, ACI, SBI akan mempengaruhi symbol register flag S,Z,AC,P,CY. Juga
untuk instruksi INR dan DCR yang mempengaruhi register S,Z,AC,P tetapi tidak
memengaruhi CY karena data hanya memiliki 8 bit. INX dan DCX tidak mempengaruhi
simbol register bendera.
Berikut merupakan penjelasan singkat mengenai instruksi yang digunakan:
INX reg,

yang berfungsi untuk menambahkan 1 pada data yang ditujukan


pasangan register
INR reg, yang berfungsi untuk menambahkan 1 pada data yang ditujukan register
DCX reg, yang berfungsi untuk mengurangi 1 pada data yang ditujukan pasangan
register
DCR reg, yang berfungsi untuk mengurangi 1 pada data yang ditujukan register
ADD reg, yang berfungsi menambahkan data dari register yang ditentukan ke
akumulator
ADC reg, yang berfungsi menambahkan data dari register yang ditujukkan ke
akumulator beserta carrynya
SUB reg, yang berfungsi mengurangi data akumulator dengan data yang terdapat
pada register yang ditentukan
SUI konstanta, yang berfungsi mengurangi data akumulator dengan konstanta
yang telah ditentukan

Selain melakukan operasi aritmatika, kita juga melakukan operasi logika yaitu
berhubungan dengan AND, OR, NAND, NOR, XOR, XNOR.

Page 28
Politeknik Negeri Sriwijaya

Daftar Pustaka
https://novtani.wordpress.com/2012/06/14/instruction-set-8085/ (Diakses tanggal 10 Oktober
2016, Pukul 02.00)
https://sofyan079.wordpress.com/2013/06/12/set-instruksi-mikroprosesor-8085/
tanggal 11 Oktober 2016, Pukul 21.32)

Page 29
Politeknik Negeri Sriwijaya

(Diakses

Lampiran
Lampiran Latihan 1

Lampiran Latihan 2

Page 30
Politeknik Negeri Sriwijaya

Latihan 3

Latihan 4

Latihan 5

Page 31
Politeknik Negeri Sriwijaya

Вам также может понравиться