• Tidak ada hasil yang ditemukan

Bahan kuliah 7 pemograman lanjutan

N/A
N/A
Protected

Academic year: 2017

Membagikan "Bahan kuliah 7 pemograman lanjutan"

Copied!
12
0
0

Teks penuh

(1)

PEMOGRAMAN

LANJUTAN

Operasi-operasi aritmatika dan logika pada mikroprosessor sama seperti

operasi pada system digital biasa. Operasi aritmatika yang dapat dikerjakan oleh

mikroprosessor 8085 adalah Penjumlahan, Pengurangan dan operasi logika adalah

Invers, AND, OR, EX-OR, Instruksi Banding dan instruksi Geser serta Putar.

Instruksi Pemrosesan Data (Data Processing)

Instruksi pemrosesan data merupakan instruksi aritmatika dan logika.

Seluruh operasi dari instruksi akan mempengaruhi isi dari Bendera (Flag).

Instruksi aritmatika terdiri dari :

Instruksi Penjumlahan (ADD)

Instruksi Penjumlahan dapat dibedakan lagi atas :

 Penjumlahan 8-bit

Instruksi penjumlahan bilangan biner 8-bit ini merupakan penjumlahan

isi register A dengan isi register yang lain atau suatu bilangan konstanta.

Tabel 1. Instruksi Penjumlahan 8-bit tanpa carry

(2)

MVI C,83 ; Reg.C= 83 83(H) 1000 0111(2)

ADD C ; Acc = Acc + C 08(H) 1 0000 1000(2)

RST ;

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.

 Instruksi Penjumlahan dengan carry

Penjumlahan data 8-bit dengan carry adalah penjumlahan Akkumulator

dengan data atau isi register dan ditambahkan dengan carry sebelum operasi

dilaksanakan. Bentuk formatnya adalah sebagai berikut :

Tabel 2. Instruksi Penjumlahan 8-bit dengan carry.

Assembli Kode-mesin Fungsi

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.

(3)

Instruksi penjumlahan 16-bit adalah penjumlahan isi pasangan register L

dengan pasangan register lain, dimana dalam pemerosesan isi pasangan register

tersebut melalui Akkumulator. Instruksi ini adalah DAD (Double ADD).

Tabel 3. Instruksi Penjumlahan 16-bit

Assembli Kode-mesin Fungsi

Setelah operasi diatas isi Register HL=OB99(H)dan BC=2743 (tetap) dan Cy=1

 Instruksi Penambahan satu (Increment)

Instruksi penambahan satu ada dua buah, yaitu penambahan isi register

8-bit 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 4. Instruksi Penambahan Satu

Assembli Kode-mesin Fungsi

INR r op-code ; Reg. r = Reg.r + 1

INX rp op-code ; Reg. rp = Reg.rp + 1

(4)

Instruksi Pengurangan dibedakan atas :

- Instruksi Pengurangan dengan satu (Decremen)

Instruksi ini menyebabkan suatu register atau pasangan register berkurang satu.

Tabel 5. Instruksi Pengurangan Satu

Assembli Kode-mesin Fungsi

DCR r op – code ; Reg. r = Reg.r - 1

DCX rp op – code ; Reg. rp = Reg. rp - 1

- Instruksi Pengurangan data 8 - bit

Instruksi pengurangan data 8-bit adalah pengurangan isi akkumulator dengan data

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

Tabel 6. Instruksi pengurangan 8-bit tanpa borrow.

Assembli Kode-mesin Fungsi

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

H=1, Cy=0.

(5)

Tabel 7. Instruksi pengurangan 8-bit dengan borrow.

Instruksi ini berfungsi untuk menambahkan 06, 60, 66 terhadap isi akkumulator

jika hasil penjumlahan lebih besar dari 9. Penambahan 06, 60 atau 66 pada

akkumulator berdasarkan isi dari Register Bendera.

(6)

Penjumlahan diatas adalah penjumlahan Desimal.

Setelah program diatas dieksekusi maka Acc=11(H), B=27(H), Flag: S=0, Z=0,

H=1, Cy=1.

Instruksi Banding (Compare)

Instruksi Banding merupakan instruksi pengurangan isiAkkumulator

dengan suatu data 8-bit atau isi suatu register, tetapi isi dari akkumulator tetap

yang berubah hanya register bendera.

Tabel 8. Instruksi Pembandingan

Assemli Kode-mesin Fungsi

Contoh 1 merupakan pembandingan isi Akumulator dengan isi Register B,

Proses pembandingan ini dilakukan dengan cara pengurangan isi Acc terhadap isi

reg. B tetapi isi Acc tidak berubah. Setelah program diatas dieksekusi maka Acc =

87(H), B=27(H), Flag P = 1, S = 0, Z = 0, H = = 0, Cy = 0.

Program contoh 2 akan menghasilkan Flag : Cy = 0, Z = 1.

(7)

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.

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.

Tabel 9. Instruksi Logika AND

Assembli Kode-mesin Fungsi

Tabel 10. Instruksi Logika OR

Assembli Kode-mesin Fungsi

ORI d8 F6-d8 ; Acc = Acc v d8

(8)

Contoh :

MVI A, 84 84(H) 1000 0100(2)

MVI B, 27 27(H) v 0010 0111(2) v

ORA B A7(H) 1010 0111(2)

RST 1

Instruksi Logika Ex-OR

Tabel 11. Instruksi Logika Ex - OR

Assembli Kode-mesin Fungsi

XRI d8 EE-d8 ; Acc = Acc v d8

XRA r op-code ; Acc = Acc v Reg. r

Contoh :

MVI A, 84 84(H) 1000 0100(2)

MVI B, 27 27(H) v 0010 0111(2) v

XRA B A3(H) 1010 0011(2)

RST 1

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.

(9)

Instruksi ini berfungsi untuk menggeser isi dari Register A kea rah kanan

atau kiri seperti digambarkan pada gambar 4.1 berikut :

RLC

RRC

RAL

RAR

gambar 4.1. Fungsi Instruksi Geser dan Putar

Contoh 1 : Contoh 2 :

STC ; Set Carry Cy = 1 STC ; Set Carry Cy = 1

CMC : Complement Carry Cy = 0 MVI A, 82 ;A=82(H) Cy=1

Akkumulator Cy

Akkumulator Cy

Akkumulator Cy

Akkumulator Cy

(10)

MVI A, 82 ; A = 82(H) Cy = 0 RRC ; A = 41(H) Cy = 0

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). Adapun bentuk format dari instruksi ini seperti pada table 12.

Tabel 12. Instruksi Lompat

Assembli Kode-Mesin Fungsi

JMP a16 C3-ll-hh ; Lompat ke alamat a 16

JZ a16 CA-ll hh ; Lompat jika ZERO

JNZ a16 C2-ll-hh ; Lompat jika tidak ZERO

JC a16 DA-ll-hh ; Lompat jika ada Carry

JNC a16 D2-ll-hh ; Lompat jika tidak ada Carry

JM a16 FA-ll-hh ; Lompat jika minus

(11)

JPE a16 EA-ll-hh ; Lompat jika Parity Genap

JPO a16 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.

Tabel 13. Instruksi Cabang

Assembli Kode-Mesin Fungsi

CALL a16 CE-ll-hh ; CALL Sub Rutin pada alamat a 16

CC a16 DC-ll hh ; CALL Sub Rutin jika ada Carry

CNC a16 D4-ll-hh ; CALL Sub Rutin jika tidak ada Carry

CZ a16 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

(12)

Assembli Kode-Mesin Fungsi

RET 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

Gambar

Tabel  2. Instruksi Penjumlahan 8-bit dengan carry.
Tabel  6. Instruksi pengurangan 8-bit tanpa borrow.
Tabel  7. Instruksi pengurangan 8-bit dengan borrow.
Tabel 8.  Instruksi Pembandingan
+6

Referensi

Dokumen terkait

Sebaliknya pendekatan hukum empiris, sosiologis, realisme, atau konteks sosial saja akan menyebabkan seolah-oleh hukum tertulis menjadi tidak diperlukan tetapi hanya melihat

JBC bit,rel Melompat ke suatu alamat yang didefinisikan oleh rel jika bit dari register atau memori yang dapat dialamati secara bit dalam keadaan set, tetapi

Jika ada suatu basis data terpusat atau terfragmentasi, tetapi tidak replikasi, yaitu hanya ada satu salinan dari setiap item data, dan semua transaksi lokal

(dimasukkan, diambil, dihitung atau lainnya), harus sesuai dengan lebar data register yang digunakan LD A,20H operand 8 bit dimasukkan ke register 8 bit. LD BC,2000H operan 16

(sebagai contoh, awalnya PC IBM dan Apple Macintosh hanya bisa menampilkan kedalaman warna 8-bit karena keterbatasan VRAM atau memori video, tetapi pada suatu

Laju bit (bit rate) dalam suatu jaringan telekomunikasi akan selalu berubah atau bahkan bertambah dan berkurang seiring dengan kapasitas memori dari data

merupakan register yang dapat digunakan untuk menyimpan data yang akan diolah atau hasil suatu operasi oleh ALU.. Terdiri atas 8 buah register 8 bit, yaitu AH, AL, BH, BL, CH, CL,

• Apabila sinyal clock masukan pada logika 0, maka data yang masuk pada R dan S tidak akan ditanggapi atau diproses oleh flip flop, sehingga keluaran Q tetap tidak berubah. •