• Tidak ada hasil yang ditemukan

Mode Pengalamantan

INSTRUSKSI DASAR MIKROPROSESOR

7.2 Mode Pengalamantan

Pengalamatan pada mikroprosesor 8085 dibagi atas: Pengalamatan Implied (Implied addressing), pengalamatan seketika (immediate addressing), pengalamatan

langsung (direct addressing), pengalamatan tidak langsung (indirect addressing), dan pengalamatan register (register addressing).

1. Pengalamatan Implied

Penglamatan jenis ini adalah instruksi yang hanya terdiri dari kode

operasi (op-code) yaitu 8-bit. Instruksi pengalamatan paling sederhana ini adalah

operasi yang men-set atau meng-clear register bendera (Reg. Flag),

menambah/mengurangi register Internal (A, B, C, D, E, H, L, SP), atau

mentrasfer isi dari suatu register ke register yang lain.

Contoh : INR A 3C; Tambah dengan 1 isi ACC.

ADD B 80; Jumlahkan isi ACC dengan isi register B

2. Pengalamatan Seketika (Immediate Addressing)

Pengalamatan seketika adalah instruksi yang operandnya adalah data

langsung. Untuk penstranferan data Mikroprosessor 8085 mempunyai dua bentuk

dasar dari instruksi pengalamatan seketika ini yaitu:

a. Bentuk MVI (Move Immediate); Bentuk ini digunakan untuk mentransfer data

8-bit ke suatu register 8-bit.

Contoh : MVI A, 05 3E-05 ; Data 05 diberikan ke Acc.

b. Bentuk LXI (Load Immediate); Bentuk ini digunakan untuk membebani

pasangan register dengan data 16-bit. Setiap Instruksi LXI terdiri dari 3byte,

yaitu byte pertama berisi Op-Code, byte kedua dan ketiga berisi data immediate

16 bit.

Contoh : LXI H, 7894 21-94-78 ; Reg. HL = 7894

3. Pengalamatan Langsung (Direct Addressing)

Pengalamatan langsung adalah pengalamatan yang langsung menuju lokasi memori. Instruksi ini terdiri dari kode operasi yang diikuti oleh alamat dari lokasi yang dituju. Mikroprosessor 8085 mempunyai dua bentuk instruksi pengalamatan langsung yaitu: Instruksi membebani yang menyimpan Accumulator, instruksi membebani yang menyimpan isi pasangan register HL. Contoh:

Assembly Machine Comment

LDA a16 3A-ll-hh Reg. A diisi dengan isi alamat a16 STA a16 32-ll-hh Isi Reg. A disimpan pada alamat a16

LHLD a16 2A-ll-hh HL dibebani dengan data dari isi memory a16 + 1. SHLD a16 22-ll-hh Isi pasangan Reg. HL disimpan pada

alamat a16 dan a16 +1.

Catatan : a16 = alamat 16-bit , ll = alamat low byte, hh = alamat high byte

4. Pengalamatan Tidak Langsung (Indirect Addressing)

Pengalamatan tidak langsung adalah pengalamatan suatu lokasi memori dimana pengalamatan dilakukan melalui register. Pengalamatan tidak langsung pada 8085 dilakukan melalui register M dan dengan instruksi STAX dan LDAX. Register M adalah memori dimana alamatnya terdapat pada pasangan register HL.

Contoh :

Assembly Machine Comment

LDAX B 02 ;Bebani Reg. A dengan isi alamat yang alamatnya terdapat pada Reg. BC

LDAX D 0A ;Bebani Reg. A dengan isi alamat yang alamatnya terdapat pada Reg. DE

STAX B 12 ;Simpan isi Reg. A pada lokasi memory yang alamatnya terdapat pada Reg. BC

STAX D 1A ;Simpan isi Reg. A pada lokasi memory yang alamatnya terdapat pada Reg. DE

MVI M, 05 36-05 ;Bebani memory dimana alamatnya pada HL dengan data 05

Contoh berikut ini mengilustrasikan bagaimana pasangan Register dibebani dengan

alamat memory dan kemudian dengan menggunakan instruksi LDAX B Akkumulator

dibebani dengan data dari lokasi memory 1000(H), dan selanjutnya data tersebut disimpan

kembali pada alamat 1200(H) dengan instruksi STAX D.

Contoh :

Assembly Machine Comment

LXI B, 1000 (H) 01-00-10 ;alamat 1000(H)BC LXI D, 1200 (H) 11-00-12 ;alamat 1200(H)DE

LDAX B 0A ;isi alamat 1000(H)ACC.

5. Pengalamatan Register

Pengalamatan ini merupakan pemindahan/pembacaan data antara register.

Pengalamatan register ini merupakan pengalamatan yang paling umum digunakan.

Pengalamatan register ini mempunyai panjang 8-bit.

a. Instruksi Data Transfer Antara Register

Kelompok ini terdiri dari 63 Instruksi yang berbeda. Instruksi ini disebut

dengan pemindahan (MOV = Move). Format dasar dari instruksi MOV

digambarkan seperti dibawah ini :

MOV rd, rs rd = Register tujuan; rs = Register asal

Daftar yang lengkap dari instruksi MOV diperlihatkan pada daftar Instruksi set

8085. Perhatikan bahwa beberapa dari instruksi ini menggunakan pengalamatan indirect

seperti pengalamatan Register

Contoh berikut menunjukkan bagaimana suatu bilangan pada Accumulator

dipindahkan ke Register D dan E. Instruksi mula-mula mengcopy isi Accumulator ke

Register D dan kemudian mengcopy isi Register D ke Register E.

b. Operasi Tranfer Data Stack

Mikroprosessor 8085A mempunyai sifat penumpukan data dengan system LIFO

(Last In First Out). Stack digunakan untuk menyimpan alamat kembali (return) dari

subroutine dan juga penyimpanan data untuk sementara waktu. Agar pemogram

mengetahui lokasi Stack penyimpanan data maka perlu alamat Stack tersebut ditandai

terlebih dahulu. Penandaan ini dilaksanakan dengan mengisi SP (Stack Pointer).

Instruksi yang berhubungan dengan Stack ini adalah PUSH, POP, XTHL. POP

membaca data dari Stack, dan XTHL adalah mempertukarkan ini Register HL dengan

isi Stack yang ditunjuk oleh SP.

Contoh : Assembly MOV D, A Machine 57 ; Comment

Isi Acc. Dicopy ke Reg. D

Assembly Machine Comment

PUSH PSW F5 Isi Reg. A dan Flag

disimpan pada stack

PUSH B C5 Isi pasangan Reg. BC

disimpan pada stack

PUSH D D5 Isi pasangan Reg. DE

disimpan pada stack

PUSH H E5 Isi pasangan Reg. HL

disimpan pada stack

POP PSW F1 data pada stack diambil

kembali dan dimasukkan ke Reg. A dan Flag.

POP B C1 data pada stack diambil

kembali dan dimasukkan ke Reg. BC

POP D D1 data pada stack diambil

kembali dan dimasukkan ke Reg. DE

POP H E1 data pada stack diambil

kembali dan dimasukkan ke Reg. HL

XTHL E3 isi Reg. HL saling

dipertukarkan dengan data yang terdapat pada stack

• Operasi PUSH

Instruksi PUSH merupakan instruksi untuk menyimpan data pada Stack.

Instruksi set ini terdiri dari instruksi PUSH, POP, XTHL. Operasi dari PUSH

PUSH D SEBELUM SESUDAH D E D E 12 34 12 34 9003 SP 9001 9001 B6 SP 9001 34 9002 05 9002 12 9003 0F 9003 0F 9004 08 9004 08 Memory Stack Gambar 7.2. Operasi PUSH

Anggap bahwa isi SP adalah 9003(H) dan pasangan register DE berisi data

1234(H). Instruksi PUSH membuat isi SP dikurangi satu (SP-1 = 9002) dan 12(H) dari

Reg. D disimpan pada memori 9002. Kemudian isi SP dikurangi satu lagi (SP-

2=9001) dan kemudian data 34(H) dari Reg. E disimpan pada memory 9001,

sedangkan isi alamat 9003 sampai 9004 dan isi register tetap. • Operasi POP

Instruksi POP adalah instruksi yang membaca data kembali dari Stack,

seperti ditunjukkan pada Gambar 7.3. berikut ini :

POP D SEBELUM SESUDAH D E D E 66 87 12 34 9001 SP 9003 9001 34 SP 9001 34 9002 12 9002 12 9003 0F 9003 0F 9004 08 9004 08 Memory Stack Gambar 7.3. Operasi POP

Langkah-langkah operasi POP D menghasilkan sebagai berikut: Anggap bahwa

isi SP tidak berubah dari saat instruksi PUSH (SP=9001). Data dari Stack alamat 9001

diambil kembali dan dimasukkan ke Register E dan setelah itu isi SP ditambah satu

(SP+1=9002(H)), kemudian isi alamat 9002(H) dimasukkan ke register D

selanjutnya isi SP ditambah satu lagi (SP+2=9003(H)). • Operasi Exchange HL dengan Data Stack (XTHL)

Instruksi ini meng-exchange (menukar) isi pasangan Register HL

dengan data yang ada pada stack.

Contoh :

Data 1000 (H) di push pada stack dan HL berisi 2000 (H), maka setelah instruksi

XTHL akan mengakibatkan kedua harga ini diexchage, sehingga HL berisi 1000 (H)

dan stack berisi 2000 (H).

• Miscelleneous Data Transfer Instruction.

Instruksi Miscelleneous adalah instruksi yang tidak termasuk kepada kelompok

diatas. Instruksi-instruksi ini seperti yang terdapat pada table.

Assembly Machine Comment

IN p8 DB p8 ; Baca data yang ada pada Port p8 dan simpan di

Acc.

OUT p8 D3 p8 ; Keluarkan isi Acc ke Port beralamat p8

SPHL F9 ; Isi pasangan Reg. HL diberikan pada Stack

Pointer (SP)

XCHG EB ; HL dan DE saling dipertukarkan

• Instruksi IN dan OUT

Instruksi IN dan OUT berfungsi untuk berhubungan dengan peralatan

input/output. Instruksi IN dan OUT diikuti dengan alamat input output yang

akan dituju. Pada saat mikroprosessor melaksanakan instruksi IN atau OUT

saluran alamat byte rendah dan byte tinggi sama yaitu berisiskan alamat

diambil dari saluran alamat tinggi atau alamat rendah. Jadi lokasi alamat

input/output yang dapat diakses maksimum 256.

Instruksi OUT 20H menyebabkan isi akkumulatordikeluarkan ke port

(Bandar) yang beralamat 20H dan instruksi IN 21H menyebabkan data pada

port yang beralamat 21H masuk pada akkumulator. • Instruksi SPHL

Instruksi ini berguna untuk membebani Stack Pointer dengan isi pasangan

register HL. Instruksi SPHL ini hanya 1 byte (Op-Code saja). Instruksi ini sering

digunakan untuk menandai Stack Pointer untuk menggantikan instruksi LXI SP.

Misalnya sebelum instruksi SPHL ini isi Stack Pointer (SP) adalah 0008 (H)

dan pasangan register HL berisi 7008 (H). Setelah instruksi ini dikerjakan

microprocessor maka Stack Pointer akan berisi 7008 (H).

• Instruksi XCHG

Instruksi ini berfungsi untuk meng-exchange isi pasangan register HL

dengan pasangan register DE. Anggap sebelum instruksi XCHG isi

pasangan register HL = 5643 (H), DE = 7613 (H), maka setelah instruksi XCHG

dikerjakan mikroprosessor maka isi pasangan register HL = 7613 (H) dan DE =

5643 (H).

Contoh:

Assembly Machine Comment

LXI D, 1200 (H) 11-00-12 Tanda untuk alamat 1200 (H) LXI H, 1000 (H) 21-00-1 Tanda untuk alamat 1000 (H)

MOV A, M 7E Data dari alamat 1000 (H) dimasukkan ke Accumulator.

XCHG EB Tanda untuk alamat saling dipertukarkan.

MOV B, M 46 Isi alamat 1200 (H) dimasukkan ke register B

MOV M, A 77 Isi alamt 1000 (H) dimasukkan ke alamat 120

XCHG EB Tanda dipertukarkan kembali.

MOV M, B 70 Isi alamat 1200 (H) yang pertamadimasukkan ke

Tugas dan Pertanyaan :

1. Apa yang dimaksud dengan Op-Code dan Operand

2. Sebutkan 5 jenis instruksi pada Mikroprosessor 8085 menurut fungsinya.

3. Sebutkan dan jelaskan Mode Pengalamatan pada Mikroprosessor

8085 serta berikan contohnya.

4. Isilah alamat, Op-Code dan comment pada table berikut sesuai

dengan Instruksi pada Mnemonic.

Setelah program di atas dilaksanakan (execute) isi dari

: Reg. A = _Reg. B = Reg. L =

Isi alamat dari : 7800 (H) = 7801 (H) =

7802 (H) = 7803 (H) =

Buatlah sebuah Program Perkalian untuk mengalikan dua buah bilangan yaitu 07

dikalikan dengan 06, dan hasil perkaliannya disimpan pada Register D, dan alamat

BAB VII

Dokumen terkait