Anda di halaman 1dari 13

NAMA : DESTIA RANI

NIM : F1B019038

MATKUL : MIKROPROSESOR (B)

TUGAS : 5

1. Apakah fungsi dari operasi transfer data ?


Intruksi transfer data berfungsi untuk mengisikan data yang diberikan ke dalam
register,mencopy data dari register ke register,mencopy data dari register ke lokasi
memori,dan sebaliknya atau mencopy dari sumber ke Tujuan. sumber bisa berupa
data atau isi dari register atau isi dari memori dimana Tujuan bisa berupa register atau
lokasi memori. Intruksi-intruksi ini tidak berefek pada register status dari
mikroprosesor.
2. Apakah fungsi dari operasi aritmatik?
Operasi aritmatik berfungsi melakukan penjumlahan, pengurangan,operasi penaikan
atau penurunan.
3. Apakah fungsi dari operasi logic?
Fungsi dari operasi logic adalah melakukan logika,rotasi,operasi membandingkan
dan komplemen.Dimana penggunaan logika sebaga intruksi bilangan 8-bit dari sebuah
register atau isi dari sebuah lokasi memori,penggunaan rotasi memungkinkan
pergeseran setiap bit dalam akumulator kekiri atau kekanan dalam satu posisi
bit,sedangkan pembanding sebagai membandingkan untuk menentukan sama atau
tidak bilangan 8-bit dari sebuah register atau isi dari sebuah lokasi memori dan
penggunaan komplemen merubah hasil dari akumulator yang mengganti semua 0
dengan semua 1 dan semua 1 dengan semua 0.
4. Buatlah contoh perintah operasi transfer data, kemudian simulasikan dengan simulator
8085!
1. Transfer Data

Di antara semua kelompok instruksi pada mikroprosesor 8085, kelompok instruksi


transfer data menunjukkan bagaimana cara memindahkan data 8 bit dari suatu register
ke register lain atau antara memori dan register.  Kelompok instruksi transfer data
terdiri dari : MOV,  MVI,  STA,  LDA, STAX,  LDAX,  LHLD,  XCHG,  XTHL,
SHLD, dan LXI. Instruksi-instruksitersebut tidak mengubah isi register flag.
 
A. Instruksi MOV (Move)
 Instruksi MOV r1, r2 adalah instruksi untuk mentransfer data dari r2(register
sumber) ke r1 (register tujuan). Pengertian kata ‘mentransfer´ di sini adalah
‘menggandakan´ atau ‘mengkopi´, karena pada akhir pelaksanaaninstruksi, isi
register tujuan jadi sama dengan isi register sumber.
 Instruksi MOV r, M berfungsi untuk mentransfer data dari lokasi memori yang
alamatnya berada pada pasangan register HL ke suatu register 8 bit. Alamat
memori M ditunjukkan oleh isi pasanganregister HL.
 Instruksi MOV M, r merupakan kebalikan dari instruksi MOV r, M.Instruksi
MOV M, r ini akan memindahkan data 8 bit yang berada pada suaturegister ke
suatu lokasi memori yang alamatnya ditunjukkan oleh pasanganregister HL.
B. Instruksi  MVI (Move Immediate)

Instruksi  MVI  r, data 8 bit´ dan instruksi  MVI M, data 8 bit.

 Instruksi MVI M, 8 bit, digunakan untuk mengisi data 8 bit pada suatu lokasi
memori yang alamatnya ada pada register HL.
C. Instruksi STA (Store Accumulator Directly in Memory) dan LDA (Load
Accumulator Directly from Memory)
 Instruksi ‘ STA’ dipergunakan untuk menyimpan data yang berada pada
akumulator (register A) ke dalam unit memori pada lokasi alamat (4 digit
heksadesimal dari belakang mnemonik STA).
 Instruksi  LDA  digunakan untuk memindahkan data 8 bit dari unit memori
lokasi alamat tertentu ke akumulator (register A).
D. Instruksi LHLD (Load H & L Registers Directly from Memory)

Berfungsi menyalin data memori pada alamat yang spesifik.

E. Instruksi SHLD (Store H & L Registers Directly in Memory)

Berfungsi menyimpan data register H & L langsung dalam memori.

‘X’ dalam nama instruksi transfer data menunjukkan bahwa itu berhubungan dengan
sepasang  register (16 bit).
5. Buatlah contoh perintah operasi Aritmatika, kemudian simulasikan dengan simulator
8085!

1. Instruksi Penjumlahan (ADD)

a. Penjumlahan 8-bit Instruksi penjumlahan bilangan biner 8-bit ini merupakan


penjumlahan isi

register A dengan isi register yang lain atau suatu bilangan konstanta.Instruksi
Penjumlahan 8-bit tanpa carry

op – code

Acc = Acc + (Reg)

Contoh : MVI A,85 ;

MVI C,83 ;

Reg.C= 83

Dari hasil operasi di atas maka : Acc = 08 dan bit register flag akan berisi : S=0, H=0,

P=0, Cy=1. Isi register 0 tetap 83.

b. Instruksi Penjumlahan dengan carry Penjumlahan data 8-bit dengan carry adalah
penjumlahan Accumulator

dengan data atau isi register dan ditambahkan dengan carry sebelum operasi
dilaksanakan. Bentuk formatnya adalah sebagai berikut :

Tabel 8. 2. Instruksi Penjumlahan 8-bit dengan carry. Assembl

; Acc = Acc + Reg.r +

Cy Contoh :

Reg.C = 83
Dari hasil operasi diatas maka : cc=90 dan bit register flag akan berisi: S=1, z=0,
H=1, P=1, Cy=0. Isi register C tetap 83.

c. Instruksi Penjumlahan dengan 16-bit Instruksi penjumlahan 16-bit adalah


penjumlahan isi pasangan register L dengan pasangan register lain, dimana dalam
pemerosesan isi pasangan

register tersebut melalui Accumulator. Instruksi ini adalah DAD (Double ADD).

Contoh : LXI H,8456

21-56-84

HL  8456

LXI B,8742

01-42-87

BC  8742

DAD B

09 HL  HL+BC Cy = 1 HL=OB98 (H)

CF

RST 1

Setelah operasi diatas isi Register HL=OB98 (H) dan BC=8742 (tetap) dan Cy=1
Setelah operasi diatas isi Register HL=OB98 (H) dan BC=8742 (tetap) dan Cy=1

dengan satu dan penambahan isi pasangan register dengan satu, tetapi penambahan
satu untuk pasangan register tidak mempengaruhi isi bendera, dengan bentuk formasi
sebagai berikut: Tabel 8.4. Instruksi Penambahan Satu

; Reg. r = Reg.r + 1 INX rp

op-code
op-code

; Reg. rp = Reg.rp + 1

2. Instruksi Pengurangan (SUB)

a. Instruksi Pengurangan dengan satu (Decremen) Instruksi ini menyebabkan suatu


register atau pasangan register berkurang satu.

; Reg. r = Reg.r - 1 DCX rp

op – code

op – code

; Reg. rp = Reg. rp - 1

b. Instruksi Pengurangan data 8 - bit Instruksi pengurangan data 8-bit adalah


pengurangan isi accumulator dengan data 8-bit atau isi register dengan bentuk format
sebagai berikut :

SUI d8 op-code

; Acc = Acc - Reg.r

Contoh : MVI A,84

84 (H)

MVI B,27

RST 1 Setelah program diatas dieksekusi maka Acc=5D (H) , B=27 (H) , Flag: S=0,
Z=0, H=1,

Cy=0.

c. Instruksi Pengurangan data 8-bit dengan borrow Tabel 8.7. Instruksi pengurangan
8-bit dengan borrow.
; Acc = Acc - Reg.r – Cy

Contoh : MVI A,57

MVI B,27

Cy=1 FF (H)

Setelah program diatas dieksekusi maka Acc=D7 (H) , B=27 (H) , Flag : S=1, Z=0,
H=0, Cy=0, P=1.

3. Instruksi Pendesimalan (DAA)

Instruksi ini berfungsi untuk menambahkan 06, 60, 66 terhadap isi accumulator jika
hasil penjumlahan lebih besar dari 9. Penambahan 06, 60 atau 66 pada accumulator
berdasarkan isi dari Register Bendera.

Contoh: MVI A, 84

Penjumlahan diatas adalah penjumlahan bukan lagi menjadi penjumlahan hexa tapi
menjadi penjumnlahan decimal yaitu 84+27= 111. Setelah program diatas dieksekusi
maka Acc=11 (H) , B=27 (H) , Flag: S=0, Z=0, H=1,

Cy=1.

4. Instruksi Banding (Compare) Instruksi Banding merupakan instruksi pengurangan


isi Accumulator dengan suatu

data 8-bit atau isi suatu register, tetapi isi dari accumulator tetap yang berubah hanya
register bendera.

Flag = Acc – d8

6. Buatlah contoh operasi logic kemudian simulasikan dengan simulator 8085!

Instruksi Operasi Logika


Instruksi-instruksi logika ini melaksanakan operasi logika antara Akkumulator dengan
suatu data 8-bit atau dengan isi suatu register dimana instruksi ini terdiri dari operasi
logika AND (^), logika OR (v), dan Exclusive- OR.

a. Instruksi Logika AND.

Instruksi Logika AND ini akan menghasilkan output seperti table kebenaran gerbang
logika AND, jadi instruksi ini padat mewakili fungsi gerbang logika AND biasa.

Fungsi ANI d8

Kode-mesin

Acc = Acc ^ d8 ANA r

E6-d8

op-code

Acc = Acc ^ Reg. r

Contoh : MVI A, 84

b. Instruksi Logika OR.

Fungsi ORI d8

F6-d8

op-code

Acc = Acc v Reg. r

c. Instruksi Logika Ex-OR

Assembly

Fungsi XRI d8
Acc = Acc v Reg. r

d. Instruksi Komplement (Complement)

Instruksi Complement ini ada dua buah yaitu CMC dan CMA, dimana CMC
berfungsi untuk mengkomplemenkan isi bit carry dari register bendera dan CMA
berfungsi untuk mengkomplemenkan isi dari register A.

e. Instruksi Geser (Shift) dan Putar (rotate). Instruksi ini berfungsi untuk menggeser isi dari
Register A kearah kanan atau

Contoh 2 :

STC

STC ; Set Carry Cy = 1 CMC

; Set Carry Cy = 1

MVI A, 82 ;A=82 (H) Cy=1 MVI A, 82 ; A = 82 (H) Cy = 0

: Complement Carry Cy = 0

Contoh 3 : Contoh 4 : STC

;Set Carry Cy = 1 MVI A, 82

; Set Carry

Cy = 1

STC

Cy=1 RAL

; A = 82(H)

Cy = 1
MVI A, 82 ;A=82(H)

;A = C1(H) Cy = 0 RST 1

; A = 05(H)

6. Instruksi Kontrol CPU 8085 mempunyai beberapa instruksi control yang


menentukan arah

suatu program, mengambil keputusan dan memodifikasi arah program sesuai dengan
hasil pengambilan keputusan. Instruksi ini terdiri dari :

1. Instruksi Lompat (JUMP)

Instruksi ini terbagi atas dua jenis, yaitu mutlak lompat (unconditional jump) dan
lompat bersyarat (conditional jump).

; Lompat ke alamat a16 JZ a16

C3-ll-hh

CA-ll hh

; Lompat jika ZERO

; Lompat jika tidak ZERO JC a16

JNZ a16

C2-ll-hh

; Lompat jika ada Carry JNC a16

DA-ll-hh

; Lompat jika tidak ada Carry JM a16

D2-ll-hh
FA-ll-hh

; Lompat jika minus

JP a16

F2-ll-hh

; Lompat jika Positif

JPE a16

; Lompat jika Parity Genap JPO a16

EA-ll-hh

E2-ll-hh

; Lompat jika Parity Ganjil

2. Instruksi Cabang dan Kembali (CALL, RET) Instruksi CALL membuat suatu
program melaksanakan suatu program subrutin yang alamat awalnya setelah kode
operasi dari instruksi CALL tersebut, dan akan kembali lagi ke program utama jika
instruksi kembali RET (return) dijumpai. Instruksi ini terdiri dari dua jenis yaitu
instruksi bersyarat dan tidak bersyarat. Syarat dari instruksi ini dilihat dari kondisi isi
register Bendera. Setelah instruksi ini dikerjakan isi register bendera tidak berubah.

CALL a16

; CALL Sub Rutin pada alamat a 16 CC a16

CE-ll-hh

; CALL Sub Rutin jika ada Carry CNC a16

DC-ll hh

; CALL Sub Rutin jika tidak ada Carry CZ a16


D4-ll-hh

CC-ll-hh

; CALL jika zero

CNZ a16

C4-ll-hh

; CALL jika tidak zero

CM a16

FC-ll-hh

; CALL jika minus

CP a16

F4-ll-hh

; CALL jika Positif

CPE a16

EC-ll-hh

; CALL jika Parity Genap

CPO a16

E4-ll-hh

; CALL jika Parity Ganjil

C9 ; Kembali ke Program Utama

RC
D8 ; Kembali jika ada Carry

RNC

D0 ; Kembali jika tidak ada Carry

RZ

C8 ; Kembali jika hasil 0

RNZ

C0 ; Kembali jika hasil tidak 0

RM

F0 ; Kembali jika Akkumulator negatif

RP

FB ; Kembali jika Akkumulator Positif

RPE

E0 ; Kembali jika Acc berparity Genap

RPO

EB ; Kembali jika Acc berparity Ganjil

Keterangan : --------- = saling dipertukarkan

( ) = Isi dari suatu alamat ( ( rp ) ) = Isi alamat dimana alamatnya terdapat pada
pasangan register rp d8 = Data 8-bit d16

= Data 16-bit a16

= Alamat 16-bit ll

= Alamat atau Data low byte


hh = Alamat atau Data high byte v

= Logika OR ^

= Logika AND

V = Logika EX-OR

F. Instruksi STAX (Store Accumulator in Address in Register Pair) dan LDAX (Load


Accumulator from Address in Register Pair)
 Instruksi ‘STAX rp’ digunakan untuk menyimpan isi akumulator kelokasi
memori yang alamatnya ditunjukkan oleh suatu pasangan register (rp).
 Instruksi ‘LDAX rp’ berfungsi mengisi akumulator dengan data 8 bit dari lokasi
memori yang alamatnya ditunjukkan oleh suatu pasangan register.
G. Instruksi LXI (Load Register Pair with Immediate data)

Instruksi LXI rp, d16 ; berfungsi mengisi register pair (rp) dari nilai data d16 (alamat
16 bit).

H. Instruksi XCHG (Exchange H & L with D & E)

Berfungsi menukar register H & L dengan register D & E.

I. Instruksi XTHL ( Exchange Top of Stack with H & L)


1.

Anda mungkin juga menyukai