Anda di halaman 1dari 3

Data Transfer Instructions Keluarga MCS-51 intel

Nama: Raras Wirasto

Immediate Addressing Mode


Pada microcontroller MCS-51 immediate addressing mode berarti merupakan
instruksi secara langsung memasukan suatu nilai/konstanta pada register atau internal
register.
Ex :
Mov a,#11h

Perintah diatas berarti masukan akumulator dengan nilai sebelas hexa.

Direct Addressing Mode


Direct Addressing Mode menggunakan internal data register dan SFR(Special
Function Registers) dengan alamatnya(dapat dilihat pada User Manual atau Handbook
Keluarga MCS-51) dapat saling mengirimkan data.
Ex:
Mov a, 70h
Mov 90h, a

Instruksi mov a, 70h maksudnya adalah mengcopy isi dari internal register 70h ke
akumulator.Sedangkan mov 90h, a bermakna mengcopy isi dari akumulator ke Special
Function Register 90h(port 1).

Register Addressing Mode


Pada mode ini yang digunakan sebagai tujuan dan sumber register adalah satu
daru delapan register dari bank register yang terpilih saat ini.
Ex:
Mov PSW, #10h
Mov R0, a
Mov R7, b

Kumpulan perintah diatas menggunakan register bank 2 sebagai internal register yang
digunakan.Hal ini dilakukan pemilihan bank register dengan perintah mov
psw,#10h,sedangkan mov r0,a berarti copy isi dari akumulator ke registor 0.Dan pada
mov r7, b artinya adalah mengcopy isi dari register b ke register 7.

Register Specific Addressing Mode


Sebagian intruksi digunakan pada register yang spesifik,tidak dibutuhkan
pengalamatan lain.terlihat pada SFR E0h adalah akumulator, untuk lebih jelasnya dapat
dilihat dari contoh berikut:

Mov a, #1
Mov 0E0h, #1
Perintah pertama memiliki arti pindahkan konstanta 1 ke akumulator,dan perintah kedua
artinya ialah pindahkan konstanta 1 ke SFR E0h.Pada dasarnya kedua perintah diatas
adalah sama yaitu mengisi akumulator dengan nilai satu.

Register Indirect Addressing Mode


Salah satu addressing mode yang powerfull adalah indirect addressing
mode,dimana alamat sumber atau tujuan tidak diberikan secara langsung.Melainkan isi
dari register digunakan sebagai target alamat. Sebagai contoh:

Mov PSW, #0
Mov R0, #78h
Mov @R0, #1

Mov psw, #0 memberikan perintah untuk memilih register bank 0.Sedangkan perintah
mov R0,#78 memasukan r0 dengan nilai 78h.Perintah terakhirlah yang menggambarkan
indirect addressing mode yaitu membuat isi dari register dengan alamat yang
dispesifikasikan oleh isi register 0 dalam hal ini alamat 78h dengan nilai konstanta satu.

Register Indexed Addressing Mode


Penggunaan look-up table sangatlah membantu dalam pengalamatan. Pada mode
ini alamat sumber atau tujuan dihasilkan dengan menambahkan nilai pada akumulator
dengan base address.Base address ini dapat berupa data pointer (DPTR) atau program
counter (PC).
Ex:
Nilai antara 0 sampai 3 berada pada akumulator.Perintah berikut ini akan
menterjemahkan nilai pada akumulator menjadi satu dari empat nilai yang didefinisikan
oleh Db(Define byte) directive.
Rel_PC: Inc A
Movc A,@A+PC
Ret
Db 66h
Db 77h
Db 88h
Db 99h

Jika subroutine dipaggil dengan akumulator berisi 01h,maka ia akan memberikan nilai
77h pada akumulator.

Stack-Oriented Data Transfer


Bentuk lain register indirect addressing ialah penggunaan perintah push dan
pop.Perintah tersebut mengguanakan SFR stack pointer (SP).Isi dari SP ini adalah alamat
dari tujuan register yang di push dan sebagai alamat sumber untuk operasi pop.SP
ditambahkan satu sebelum data ditransfer pada operasi push dan dikurangi setelah
melakukan opersi pop.
Ex:
Mov SP,#4Fh
Mov a, #45h
Push acc
Pop b
Perintah awal digunakan untuk menginisialisai SP dengan alamat 4Fh,kemudian
memasukan nilai 45h pada akumulator. Perintah push diberikan maka menambahkan
nilai SP menjadi 50h terlebih dahulu baru kemudian memasukan nilai dari akumulator
45h ke register 50h. Pada opersi pop b berarti nilai dari register 50h dimasukan pada
register b, lalu nilai SP dikurangi menjadi 4Fh.

Exchange Instructions
Exchange Instructions memberikan data transfer dua arah yang sangat baik untuk
mempercepat operasi. Sebagai contoh isi pada akumulator dan satu register tertentu dapat
langsung dipertukarkan tanpa perlu suatu penyimpanan sementara. Pada keluarga
microcontroller 8051 memiliki dua perintah yang dapat digunakan yaitu XCH untuk
operasi byte dan XCHD untuk poerasi digit.
Ex:
Xch a,b

Perintah tersebut berarti menukarkan isi dari akumulator dengan isi register b.Jika
sebelumnya a bernilai 10 dan b bernilai 22, maka setelah operasi xch dijalankan maka
akumulator akan benilai 22 dan reg b akan bernilai 10.

Daftar Pustaka

MCS 51 Microcontroller Family User’s Manual, Feb 1994

Anda mungkin juga menyukai