Anda di halaman 1dari 12

TUGAS MINGGU 13

NAMA : DERIUS ANDRIANUS NAINGGOLAN


KELAS : CE 1A
NIM : 2105112047

PEMBAGIAN HIMPUNAN INSTRUKSI PROSESOR 8085


BESERTA CONTOH INSTRUKSI
1. Kelompok Instruksi Transfer Data
• instruksi MOV Rs, Rd adalah instruksi untuk mentransfer
data dari Rs (register sumber) ke Rd (register tujuan).
Contohnya:

Pada instruksi MOV A, B, jika pada sebelum instruksi


tersebut dilakukan isi register A ad;ah 3C dan isi register B
adalah 7F.

A <= B

Maka setelah instruksi MOV A, B dilaksanakan,


isi register A = isi register B = 7F.

• Instruksi MOV r, M berfungsi untuk mentransfer data dari


lokasi memori yang alamatnya berada pada pasangan register
HL ke suatu register 8 bit.
Contoh :
Untuk mentransfer data dari lokasi memori pada
alamat 8000 ke register B, pertama, isilah register HL
dengan 8000 (misalnya dengan instruksi LXI H, 8000),
kemudian susulkan instruksi MOV B, M.

HL <= 8000
B <= M

Setelah instruksi MOV B, M tersebut dilaksanakan, maka


isi register B akan sama dengan isi (data 8 bit) yang berada
pada alamat memori 8000 = 4C.

• Instruksi MOV M, r merupakan kebalikan dari


instruksi MOV r, M. Yaitu memindahkan data dari
memori ke register.
Contoh :
Untuk mentransfer data 8 bit dari register D ke lokasi
memori dengan alamat A000, pertama isilah register HL dengan
LXI H, A000
M <=LXI
A000 (misalnya dengan instruksi D H, A000), kemudian
berikan instruksi MOV M, D.

Setelah instruksi MOV M, D ini dilaksanakan,


maka isi memori alamat A000 akan sama dengan isi
register D = 7F.

• Instruksi MVI Rd, d8 ; berfungsi mengisi nilai suatu register


dengan data 8 bit. Contohnya:

Instruksi MVI B, 5C akan mengisi register B dengan data 8 bit


5C (B<=5C).

• Instruksi MVI M, 8 bit, digunakan untuk mengisi data 8


bit pada suatu lokasi memori pada register HL. Contohnya:

Instruksi MVI M, 4F akan mengisi lokasi memori


yang alamatnya berada pada pasangan register HL dengan
data 4F (M <= 4F).

• Instruksi STA addr16 ; berfungsi menyimpan nilai data langsung dalam


memori addr16.
Contoh :
Instruksi “STA D45F” akan menyimpan isi akumulator ke
dalam unit memori pada alamat D45F([D45F] <= A).

• Instruksi “LDA alamat” digunakan untuk


memindahkan data 8 bit dari unit memori lokasi alamat
tertentu ke akumulator (register A).
Contoh :
{ A <= [D888] }
Instruksi “LDA D888” akan memindahkan data
yang berada pada alamat D888 ke akumulator (register
A).

• Instruksi “STAX rp” digunakan untuk menyimpan isi akumulator ke


lokasi memori yang alamatnya ditunjukkan oleh suatu pasangan register
(rp).
Contoh :
Instruksi “STAX B” akan menyimpan isi akumulator ke lokasi
memori yang alamatnya ditunjukkan oleh pasangan register BC.
{ [BC] <= A}
• Instruksi “LDAX rp” berfungsi mengisi akumulator dengan data 8 bit
dari lokasi memori yang alamatnya ditunjukkan oleh suatu pasangan
register.
Contoh :
Instruksi LDAX D” akan mengisi akumulator dengan data 8 bit dari
lokasi memori yang alamatnya ditunjukkan oleh pasangan register DE. {
A <= [DE] }

2. Kelompok Instruksi Aritmatika

• Intruksi ADD dipergunakan untuk melakukan operasi penjumlahan 8 bit.


Contoh : ADD B
Perintah ini menyebabkan isi register B ditambahkan ke isi register A
(akumulator). Hasil penjumlahan akan disimpan dalam register A. (A =>
A+B)
• Intruksi SUB dipergunakan untuk melakukan operasi pengurangan 8 bit.
Contoh: SUB C

Intruksi tersebut menyebabkan isi dari register A


(akumulator) dikurangi oleh isi dari register C. Hasil
pengurangan akan disimpan di register A (akumulator).
(A => A+C).

• Instruksi ADI dipergunakan untuk menambahkan isi


register A (akumulator) dengan data 8 bit secara
langsung (immediate data).
Contoh : ADI 2Fh
Disini 2Fditambahkan ke isi register A (akumulator).
Hasilnya disimpan di register A (akumulator) dan
semua flag dapat berubah.

• Intruksi SUI dipergunakan dipergunakan untuk


mengurangkan isi register A (akumulator) dengan data 8
bit secara langsung (immediate data).
Contoh : SUI 5Ch
Disini 5C mengurangi isi register A (akumulator).
Hasilnya disimpan di register A (akumulator) dan
semua flag dapat berubah.
A › A – 5C

• Instruksi ADC dipergunakan untuk menambah isi register dengan data 8


bit dan
mengikutsertakan carry BIT (Cy) dari operasi sebelumnya.
Contoh :

Contoh penjumlahan bilangan 24 bit (tiga byte).


Masing-masing bilangan akan memerlukan tiga lokasi
memori dan total operasi penjumlahan akan
memerlukan tiga penjumlahan 8 bit terpisah, seperti
diperlihatkan dalam gambar berikut :
• Instruksi SBB berfungsi untuk mengurangi isi register
A dengandata 8 bit dan mengikutsertakan Borrow bit
(Cy) dari operasi sebelumnya. Data 8 bit tersebut dapat
diambil dari suatu register atau suatu lokasi memori
yang alametnya ditunjukan oleh register HL.
Contoh: SBB D
Menyebabkan : A › A – D – Cy
• Instruksi ACI berfungsi untuk menambah isi register A
dengan data 8 bit secara langsung (immediate data) dan
mengikutsertakan carry bit (Cy) dari operasi
sebelumnya.
Contoh: ACI 4Ch
Menyebabkan isi register A (akumulator) akan
ditambah 4Ch dan carry. A › A + 4Ch + Cy
• Instruksi SBI berfungsi untuk mengurangi isi register A
dengan data 8 bit langsung (immediate data) dan
mengikutsertakan Borrow bit (Cy) dari operasi
sebelumnya.
Contoh : SBI 3Dh
Menyebabkan isi register A dikurangi
dengan data 3D dan Borrow. A › A – 3D
– Cy
• Instruksi INR dipergunakan untuk menambah
(menaikan) dengan 1
isi dari suatu register 8 bit atau lokasi memori yang
alamatnya ditunjukan oleh regidter HL. Contoh : INR B

Perintah ini menyebabkan isi register B


ditambah dengan satu, atau : B › B + 1

• INX dipergunakan untuk menambah dengan 1 isi suatu


pasangan register (16 bit register).
Contoh : INX D
Menyebabkan isi pasangan register DE
ditambah dengan 1. DE › DE + 1

• Instruksi DCR dipergunakan untuk mengurangi dengan 1 isi dari suatu


register 8 bit
atau suatu lokasi memori yang alamatnya ditunjukan oleh register HL.

Contoh : DCR C
Menyebabkan isi register C dikurangi dengan 1 atau :

C› C – 1

• Instruksi DCX dipergunakan untuk mengurangi dengan


1 isi suatu pasangan register (16 bit register).
Contoh : DCX H
Menyebabkan isi pasangan register HL
dikurangi dengan 1, atau :

HL › HL – 1

• Instruksi DAD dipergunakan untuk menambahkan isi


pasangan register HL dengan isi suatu pasangan register
pada operasi penjumlahan16 bit.
Contoh :DAD D
Menyebabkan isi pasangan register HL ditambahkan
dengan pasangan register DE.
HL › HL + DE
3. Kelompok Instruksi Geser

• RAR adalah instruksi yang digunakan untuk menggeser isi register A ke


kanan melalui carry flag.
Contoh :
Sebelum instruksi RAR
Isi register A = 10001111(2) =

8F(16) Carry flag = 0

Setelah instruksi RAR


register A = 01000111(2) = 47(16)
Carry flag = 1

• RAL adalah instruksi yang digunakan untuk menggeser isi register A ke


kiri melalui carry flag
Contoh :
Sebelum instruksi RAL
Isi register A = 10001111(2) =

8F(16) Carry flag = 0

Setelah instruksi RAL


Isi register A = 00011110(2) =
1E(16) Carry flag = 1

• RRC adalah instruksi yang digunakan untuk menggeser isi register A ke


kanan.
Contoh :

Sebelum instruksi RRC


Isi register A = 10001111(2) = 8F(16)
Carry flag = 0

Setelah instruksi RRC


Isi register A = 11000111(2) = C7(16)
Carry flag = 1
• RLC adalah instruksi yang digunakan untuk menggeser isi register A ke
kiri MSB akan
mengisi LSB dan juga akan mengisi carry flag.

Contoh :
Sebelum instruksi RLC
Isi register A = 10001111(2) =
8F(16) Carry flag = 0

Setelah instruksi RLC

Isi register A = 00011111(2) =


1F(16) Carry flag = 1

4. Kelompok Instruksi Logika


1) Instruksi Logika AND
Instruksi logika and terbagi menjadi 3 :
• ANA M (AND Memory with A)
Contoh :
Sebelum instruksi ANA M
Isi register A = 10101110(2) = AE(16)
Isi memori alamat 7000 = 01101100(2) = 6C(16)

Setelah instruksi ANA M


Isi register A = 00101100(2) = 2C(16)
• ANA R ( And Register with A )
Contoh :
Sebelum instruksi ANA R
Isi register A = 01011000(2) = 58(16)
Isi register B = 10010011(2) = 93(16)
Setelah instruksi ANA R
Isi register A = 00010000(2) = 10(16)

• ANI ( And Immediate with A )


Contoh :
Sebelum instruksi ANI
Isi register A = 01110010(2) = 72(16)
Konstanta = 10011001(2) = 99(16)
Setelah instruksi ANI
Isi register A = 00010000(2) = 10(16)

2) Instruksi Logika OR
Instruksi logika OR terbagi 3 yaitu :
• ORA M ( Or Memory with A )
Contoh :
Sebelum instruksi ORA M
Isi register A = 10101110(2) = AE(16)
Isi memori alamat 8000 = 01101100(2) = 6C(16)
Setelah instruksi ORA M
Isi register A = 11101110(2) = EE(16)

• ORA R ( Or Register with A )


Contoh :
Sebelum instruksi ORA R
Isi register A =
01011000(2) =
58(16) Isi register D
= 10010011(2) =
93(16)
Setelah instruksi ORA R
Isi register A = 11011011(2) = DB(16)

• ORI ( Or Immediate with A )


Contoh :
Sebelum instruksi ORI
Isi register A = 01110010(2) = 72(16)
Konstanta = 10011001(2) = 99(16)
Setelah instruksi ORI
Isi register A = 11111011(2) = FB(16)

• XRA R ( Exclusive Or Register with A )


Contoh :
Sebelum instruksi XRA R
Isi register A = 01011000(2) = 58(16)
Isi register C = 10010011(2) = 93(16)

Setelah instruksi XRA R


Isi register A = 11001011(2) = CB(16)

• XRI ( Exclusive Or Immediate with A )


Contoh :
Sebelum instruksi XRI
Isi register A = 01110010(2) = 72(16)
Konstanta = 10011001(2) = 99(16)
Setelah instruksi XRI
Isi register A = 11101011(2) = EB(16)

5. Kelompok Instruksi Percabangan


Instruksi pencabangan dibagi menjadi dua, yaitu :
➢ Pencabangan bersyarat (conditional) ‹ Perintah :
JC, JNC, JZ, JNZ, JP, JM, JPE, JPO.
➢ Pencabangan tidak bersyarat ‹ Perintah : JMP (jump) dan CALL.

1). JC (Jump if Carry Set)


Perintah ini digunakan apabila kita ingin menguji
carry bit. Jika carry bit berlogika “1”, maka program
akan melompat ke alamat yang ditulis pada perintah
“JC addr”.

2). JNC (Jump if Carry Not Set)


Perintah ini digunakan apabila kita ingin menguji
carry bit. Jika carry bit berlogika “0”, maka program
akan melompat ke alamat yang ditulis pada perintah
“JNC addr”.

3). JM (Jump if Minus)


Perintah ini digunakan apabila kita ingin menguji sign
bit. Program akan melompat pada alamat tertentu
apabila sign bit berlogika “1”.

4). JP (Jump if plus)


Perintah ini digunakan apabila kita ingin menguji
sign bit. Jika sign bit berlogika “0’, maka program
akan melompat ke alamat yang ditulis setelah perintah
JP.

5). JZ (Jump if Zero)


Jika zero bit berlogika “1” maka program akan
melompat ke alamat yang ditulis setelah perintah JZ.

6). JNZ (Jump if not zero)


Jika zero bit berlogika “0’ maka program akan
melompat ke alamat yang ditulis setelah perintah JNZ.

7). JPE (Jump if Even Parity)


Jika parity bit berlogika “1”, artinya jumlah logika
satu dari suatu data hasil operasi yang mempengaruhi
register flag berjumlah genap, maka program akan
melompat ke alamat yang ditulis setelah perintah JPE.
8). JPO (Jump if Parity Odd)
Jika parity bit berlogika “0”, artinya jumlah logika
satu dari suatu data hasil operasi yang mempengaruhi
register flag berjumlah ganjil
1) JMP (Jump)

Perintah ini digunakan apabila kita ingin


melompat ke alamat tertentu

2) CALL
Perintah ini digunakan apabila kita ingin
menggunakan suatu subrutin.

6. Kelompok Instruksi I/O

Instruksi IN dan OUT berfungsi untuk mengatur


lalu lintas dengan peralatan I/O. Dalam instruksi OUT,
sumber selalu accumulator. Dalam instruksi IN, tujuan
adalah accumulator. Di belakang kode operasi IN dan
OUT kita hanya perlu mencantumkan nomor pintu
(gate number) saja, yaitu alamatnya peralatan I/O
(kemana data harus dibawa atau dari mana data harus
diambil).
Di dalam mikroprosesor 8085, alamat I/O port
adalah 51H dan 50H. Untuk alamat saklar 8 bit adalah
51H (alamat port dihubungkan ke saklar). Sedangkan
alamat LED 8 bit adalah 50H (alamat port 50
dihubungkan dengan LED).

Anda mungkin juga menyukai