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