Senin, 09 April 2012

Daftar Instruksi 8051 beserta Fungsi

Daftar Assembly Directive
Assembly Directive
Keterangan
EQU
Pendefinisian konstanta
DB
Pendefinisian data dengan ukuran satuan 1 byte
DW
Pendefinisian data dengan ukuran satuan 1 word
DBIT
Pendefinisian data dengan ukuran satuan 1 bit
DS
Pemesanan tempat penyimpanan data di RAM
ORG
Inisialisasi alamat mulai program
END
Penanda akhir program
CSEG
Penanda penempatan di code segment
XSEG
Penanda penempatan di external data segment
DSEG
Penanda penempatan di internal direct data segment
ISEG
Penanda penempatan di internal indirect data segment
BSEG
Penanda penempatan di bit data segment
CODE
Penanda mulai pendefinisian program
XDATA
Pendefinisian external data
DATA
Pendefinisian internal direct data
IDATA
Pendefinisian internal indirect data
BIT
Pendefinisian data bit
#INCLUDE
Mengikutsertakan file program lain
Daftar Instruksi
Instruksi
Keterangan Singkatan
ACALL
Absolute Call (memanggil sub-sub rutin program )
ADD
Add ( melakukan operasi penambahan )
ADDC
Add with Carry ( melakukan operasi penambahan dengan carry)
AJMP
Absolute Jump (menjangkau satu daerah memori-program MCS51 sejauh 2 KiloByte )
ANL
AND Logic ( Instruksi ini adalah melakukan AND logika pada dua operand dan menaruh hasilnya pada destination. Destination normalnya adalah Akumulator. Sedang operand source bisa register , memory, atau immediate. Lihat Lampiran A.1 untuk lebih jauh dengan model pengalamatan dari instruksi ini. Instruksi ANL untuk operand berukuran byte ini tidak mempengaruhi bendera apapun. Intruksi ini juga digunakan untuk me-mask (clear bit) beberapa bit dari operand)
CJNE
Compare and Jump if Not Equal (membandingkan data langsung dengan lokasi memori yang dialamati oleh register R atau Akumulator A. apabila tidak sama maka instruksi akan menuju ke alamat kode )
CLR
Clear ( Instruksi ini akan mereset data akumulator menjadi 00H )
CPL
Complement ( mengkomplemen isi akumulator )
DA
Decimal Adjust (untuk mengkoreksi masalah yang timbul yang berkaitan denga penjumlahan bilangan BCD. Dan perintah ini hanya memiliki operand akumulator “A”. Instruksi ini akan menambah dengan 6 nible bawah ataupun nible atas jika dibutuhkan, namun jika tidak, nible tersebut tidak akan dirubah )
DEC
Decrement ( Instruksi ini akan mengurangi isi lokasi memori yang ditujukan oleh register R dengan 1, dan hasilnya disimpan pada lokasi tersebut )
DIV
Divide ( melakukan operasi pembagian )
DJNZ
Decrement and Jump if Not Zero (Instruksi ini akan mengurangi nilai register dengan 1 dan jika hasilnya sudah 0 maka instruksi selanjutnya akan dieksekusi. Jika belum 0 akan menuju ke alamat kode )
INC
Increment (Instruksi ini akan menambahkan isi memori dengan 1 dan menyimpannya pada alamat tersebut)
JB
Jump if Bit Set (Instruksi ini akan membaca data per satu bit, jika data tersebut adalah 1 maka akan menuju ke alamat kode dan jika 0 tidak akan menuju ke alamat kode)
JBC
Jump if Bit Set and Clear Bit ( instruksi JBC sama dengan instruksi JB, hanya saja jika ternyata bit yang diperiksa memang bernilai 1, selain akan JUMP ke instruksi lain juga akan menolkan bit yang baru saja diperiksa)
JC
Jump if Carry Set ( membaca data carry )
JMP
Jump to Address ( Instruksi untuk memerintahkan loncat kesuatu alamat kode tertentu)
JNB
Jump if Not Bit Set (Instruksi ini akan membaca data per satu bit, jika data tersebut adalah 0 maka akan menuju ke alamat kode dan jika 1 tidak akan menuju ke alamat kode )
JNC
Jump if Carry Not Set (Instruksi ini, menggunakan bendera Carry sebagai menentu keputusan dalam jump. Saat mengeksekusi “JNC LABEL”, CPU akan memeriksa status bendera Carry(CY). Jika CY=1, maka program akan melompat ke alamat yang ditunjuk. Namun jika CY=0, maka program akan mengeksekusi instruksi selanjutnya dibawah JNC tersebut )
JNZ
Jump if Accumulator Not Zero (Instruksi ini tidak akan memeriksa isi A. Jika dia 00, maka program akan melompat ke alamat yang ditunjuk )
JZ
Jump if Accumulator Zero (Instruksi ini akan memeriksa isi A. Jika dia 00, maka program akan melompat ke alamat yang ditunjuk )
LCALL
Long Call (Ini adalah instruksi 3-byte. Byte pertama adalah opcode, sedang 2-byte lainnya adalah alamat 16-bit yang dituju. Saat instruksi LCALL ini dijalankan, CPU tidak lagi mengeksekusi instruksi-instruksi di bawah LCALL, namun segera melompat pada alamat yang dituju )
LJMP
Long Jump (LJMP adalah lompat jarak jauh tanpa syarat kondisi. Disebut juga sebagai Jump 16-bit. Ini adalah instruksi 3-byte, di mana byte pertama adalah opcode, sedang dua byte yang lain adalah representasi dari alamat 16-bit yang dituju. Dengan 2 byte ini kontrol program dapat dipindahkan ke semua alamat memory program yang bisa dijangkau 8051 yakni alamat 16-bit, mulai dari alamat 0000 s/d FFFFh )
MOV
Move from Memory (Instruksi ini untuk memindahkan isi akumulator/register atau data dari nilai luar atau alamat lain )
MOVC
Move from Code Memory (tambahan huruf C tersebut dimaksud untuk membedakan bahwa instruksi ini dipakai di memori program )
MOVX
Move from Extended Memory (perintah yang dipakai untuk memori data eksternal (X singkatakan dari External) )
MUL
Multiply ( melakukan operasi perkalian )
NOP
No Operation ( menyisipkan instruksi untuk tidak mengerjakan apa-apa )
ORL
OR Logic ( Operand tujuan dan sumber di-OR-kan, dan menempatkan hasilnya pada tujuan destination. Instruksi ORL dapat digunakan untuk men-Set menjadi 1′s beberapa bit dalam register. Register tujuan umumnya adalah Akumulator. Sedang operand source bisa register, memory, atau immediate. Lihat Lampiran A.1 untuk lebih jauh dengan model pengalamatan dari instruksi ini. Instruksi ORL untuk operand berukuran byte ini tidak mempengaruhi bendera apapun )
POP
Pop Value From Stack (memanggil subrutin dengan instruksi CALL, memory stack akan menyimpan alamat di mana CPU akan kembali setelah menjalankan subrutin )
PUSH
Push Value Onto Stack (memanggil subrutin dengan instruksi CALL, memory stack akan menyimpan alamat di mana CPU akan kembali setelah menjalankan subrutin )
RET
Return From Subroutine (Intruksi untuk kembali dari suatu subrutin program ke alamat terakhir subrutin tersebut di panggil )
RETI
Return From Interrupt (men-Clear-kan bit yang bersangkutan)
RL
Rotate Left (Pada putar kiri , 8-bit dalam akumulator digeser ke kiri sejauh satu bit. Bit D7 keluar dari Most Significant Bit (MSB) dan ditempatkan pada D0 atau Least Significant Bit (LSB) )
RLC
Rotate Left through Carry (Instruksi RRC adalah menggeser 8-bit dalam akumulator ke kanan sejauh 1 bit melewati Carry. Bit D0 keluar dari Least Significant Bit (LSB) dan ditempatkan pada Carry. Sementara isi Carry ditempatkan pada D7 atau Most Significant Bit (MSB) )
RR
Rotate Right (Pada putar kanan , 8-bit dalam akumulator digeser ke kanan sejauh satu bit. Bit D0 keluar dari Least Significant Bit (LSB) dan ditempatkan pada D7 atau Most Significant Bit (MSB))
RRC
Rotate Right through Carry (Instruksi RRC adalah menggeser 8-bit dalam akumulator ke kanan sejauh 1 bit melewati Carry. Bit D0 keluar dari Least Significant Bit (LSB) dan ditempatkan pada Carry. Sementara isi Carry ditempatkan pada D7 atau Most Significant Bit (MSB) )
SETB
Set Bit (Instruksi untuk mengaktikan atau memberikan logika 1 pada sebuat bit data )
SJMP
Short Jump (SJMP adalah lompat tanpa syarat jarak pendek. Disebut juga sebagai Jump relatif 8-bit. Ini adalah instruksi 2 byte. Byte pertama adalah opcode, sedang byte lainnya adalah alamat relatif yang dituju )
SUBB
Subtract With Borrow (Isi Akumulator A dikurangi dengan bilangan 1 byte berikut dengan nilai bit Carry, hasil pengurangan akan ditampung kembali dalam Akumulator. Dalam operasi ini bit Carry juga berfungsi sebagai penampung limpahan hasil pengurangan. Jika hasil pengurangan tersebut melimpah (nilainya kurang dari 0) bit Carry akan bernilai ‘1’, kalau tidak bit Carry bernilai ‘0’ )
SWAP
Swap Nibbles (men-swap (menukar balik) nible bawah dan nible atas)
XCH
Exchange Bytes ( merubah bit )
XCHD
Exchange Digits ( merubah digit )
XRL
Exclusive OR Logic (membalik nilai (complement) beberapa bit tertentu dari sebuah bilangan biner 8 bit, caranya dengan membentuk sebuah bilangan biner 8 bit sebagai data konstan yang di-XRL-kan bilangan asal. Bit yang ingin dibalik-nilai diwakili dengan ‘1’ pada data konstan, sedangkan bit lainnya diberi nilai ‘0’ )

Tidak ada komentar:

Posting Komentar

Followers

 

coretan cantik Copyright © 2011 Design by Ipietoon Blogger Template | web hosting