Minggu, 22 Januari 2012

INSTRUKTION SET FOR AT89C51 (MICROCONTROLER)


ACALL ALAMATKODE
    Memanggil program percabangan 
ADD A,#data    Menambahkan data dengan Akumulator dan hasilnya disimpan dalam akumulator 
ADD A,@Rr    Menambahkan data memori yang lokasinya ditunjukan oleh nilai isi register r dengan   
akumulator dan hasilnya disimpan dalam akumulator 
ADD A,Rr    Menambahkan isi register r dengan akumulator dan hasilnya disimpan dalam akumulator    ADD A,Alamatdata    Menambahkan isi alamat data dengan akumulator dan hasilnya disimpan dalam akumulator 
ADDC A,#data    Menambahkan isi carry flag dengan akumulator dan menambahkan data, hasilnya disimpan dalam akumulator 
ADDC A,@Rr    Menambahkan isi carry flag dengan akumulator dan menambahkan isi data memori yang lokasinya ditunjukan oleh isi register r, hasilnya disimpan dalam akumulator   

ADDC A,Alamatdata    Menambahkan isi carry flag dengan akumulator dan menambahkan isi data dari alamat data, hasilnya disimpan dalam akumulator   
AJMP Alamatkode    Intruksi ini adalah untuk melompat ke alamatkode yang dituju, dengan jangkauan lompatan 2 Kbyte   
ANL A,#data    Meng-AND-kan data dengan akumulator   
ANL A,@Rr    Meng-AND-kan isi memori yang lokasinya ditunjukan oleh isi register r dengan akumulator   
ANL A,Rr    Meng-AND-kan isi register r dengan akumulator   
ANL A,Alamatdata    Meng-AND-kan isi alamat data tertentu dengan akumulator   
ANL C,Alamat bit    Meng-AND-kan isi alamat bit tertentu dengan isi carry, jika keduany 1 maka hasilnya 1, selain itu hasilnya 0. hasilnya ditempat pada carry   
ANL Alamatdata,A    Meng-AND-kan isi alamat data dengan akumulator, dan hasilnya disimpan dalam alamatdata yang bersangkutan   

CALL    Intruksi ini akan ditranslasikan ke ACALL atau LCALL   
CJNE @Rr,#data,alamat kode    Membandingkan data langsung dengan lokasi memori yang dialamati oleh register r. Apabila tidak sama, eksekusi akan menuju ke alamatkode. Bila sama intruksi selanjutnya yang akan dijalankan   
CJNE A,#data,Alamatkode    Membandingkan data langsung dengan isi akumulator. Apabila tidak sama maka eksekusi akan menuju ke alamatkode. Bila sama maka intruksi selanjutnya akan dijalankan   
CJNE A,Alamatdata,Alamatkode    Membandingkan isi alamatdata langsung dengan isi akumulator. Apabila tidak sama maka eksekusi akan menuju ke alamatkode. Bila sama maka intruksi selanjutnya akan dijalankan   
CJNE Rr,#data,alamatkode    Membandingkan data langsung dengan isi register r. Apabila tidak sama maka eksekusi akan menuju ke alamatkode. Bila sama maka intruksi selanjutnya akan dijalankan   
CLR A    Intruksi ini makan me-reset akumulator menjadi 00H   
CLR C    Instruksi ini akan me-reset carry flag menjadi 0   
CLR Alamatbit    Instruksi ini akan me-reset alamatbit menjadi 0   
CPL A    Instruksi ini akan mengkomplemen isi akumulator   
CPL C    Instruksi ini akan mengkomplemen isi Carry flag   
CPL Alamatbit    Instruksi ini akan mengkomplemen isi suatu alamatbit   

DEC @Rr    Instruksi ini akan mengurangi 1 isi lokasi memori yang alamatnya ditunjukan oleh isi register r   
DEC A    Instruksi ini akan mengurangi 1 isi akumulator   
DEC Rr    Instruksi ini akan menguranig 1 isi register r   
DEC Alamatdata    Instruksi ini akan mengurangi 1 isi alamatdata   
DIV AB    Instruksi ini akan membagi isi akumulator dengan isi register B. akumulator berisi hasil bagi, sedangkan register B berisi sisa pembagian   
DJNZ Rr,Alamatkode    Instruksi ini akan mengurangi 1 isi register r, jika hasilnya sudah 0 maka instruksi selanjutnya yang akan dijalankan. Jika hasilnya belum 0 eksekusi akan menuju ke alamatkode   
DJNZ Alamatdata,alamatkode    Instruksi ini akan mengurangi 1 isi alamatdata, jika hasilnya sudah 0 maka intruksi selanjutnya yang akan dijalankan. Jika hasilnya belum 0 eksekusi akan menuju ke alamatkode   

INC @Rr    Instruksi ini akan menambah 1 isi memori yang lokasinya ditunjukan oleh register r   
INC A    Instruksi ini akan menambahkan 1 isi akumulator   
INC DPTR    Instruksi ini akan menambah 1 isi data pointer   
INC Rr    Instruksi ini akan menambah 1 isi dari register r  

JB Alamatbit,Alamatkode    Instruksi ini akan menguji suatu alamatbit, jika berisi 1 eksekusi akan menuju ke alamatkode. Jika tidak 1 maka intruksi selanjutnya yang akan di eksekusi   
JBC Alamatbit,Alamatkode    Instruksi ini akan menguji suatu alamatbit. Jika berisi 1, bit tersebut akan diubah menjadi 0 dan eksekusi akan menuju ke alamatkode. Jika berisi 0, intruksi selanjutnya yang akan di eksekusi   
JC Alamatkode    Instruksi ini akan menguji carry flag. Jika berisi 1, eksekusi akan menuju ke alamatkode. Jika berisi 0 intruksi selanjutnya yang akan di eksekusi   
JMP Alamatkode    Instruksi ini akan diubah menjadi SJMP, AJMP atau LJMP   
JNB Alamatbit,Alamatkode    Instruksi ini menguji suatu alamat bit, jika isinya 0, eksekusi akan menuju ke alamat kode. Jika isinya 1 intruksi selanjutnya yang akan dieksekusi   
JNC Alamatkode    Instruksi akan menguji isi carry flag. Jika isinya 0 eksekusi akan menuju ke alamatkode. Jika berisi 1 intuksi selanjutnya yang akan dieksekusi    
JNZ Alamatkode    Instruksi ini akan menguji isi akumulator. Jika tidak sama dengan 0 eksekusi akan menuju ke alamatkode. Jika sama dengan 0 intruksi selanjutnya yang akan dieksekusi   
JZ Alamatkode    Instruksi ini akan menguji isi akumulator. Jika nilainya 0 eksekusi akan menuju ke alamatkode. Jika tidak 0 intruksi selanjutnya yang akan dieksekusi  

LCALL Alamatkode    Instruksi ini akan melompat ke alamat yang ditunjukan oleh alamatkode    
LJMP Alamatkode    Instruksi ini akan menuju ke alamatkode   

MOV @Rr,#data    Instruksi ini akan memindahkan data ke lokasi memori yang alamatnya ditunjukan oleh isi register r   
MOV @Rr,A    Instuksi ini akan memindahkan isi akumulator ke lokasi memori yang alamatnya ditunjukan oleh isi register r   
MOV @Rr,Alamatdata    Instruksi ini akan memindahkan isi suatu alamatdata ke lokasi memori yang alamatnya ditunjukan oleh isi register r   
MOV A,#data    Instruksi ini akan memindahkan data ke akumulator   
MOV A,@Rr    Instruksi ini akan memindahkan isi data memori yang lokasinya ditunjukan oleh isi register r ke akumulator   
MOV A,Rr    Instruksi ini akan memindahkan isi data register r ke akumulator   
MOV A,Alamatdata    Instruksi ini akan memindahkan isi lamatdata ke akumulator   
MOV C,alamatbit    Instruksi ini akan memindahkan isi suatu alamatbit ke carry flag   
MOV DPTR,#data    Instruksi ini akan memindahkan data 16 bit ke data pointer   
MOV Alamat1,Alamat2    Instruksi ini akan memindahkan isi alamat data sumber (alamat2) ke alamatdata tujuan (alamat1)   
MOV A,@A+DPTR    Instruksi ini akan menjumlahkan isi data pointer dengan isi akumulator. Hasil penjumlahan merupakan alamatkode memori dan isinya akan dipindahkan ke akumulator   
MUL AB    Instruksi ini akan mengalikan isi akumulator dengan isi register B. byte bawah hasil perkalian dimasukan ke akumulator dan byte atas dimasukan ke register B  

NOP    Instruksi ini tidak melakukan apa pun selama satu siklus   

ORL A,#data    Instruksi ini meng-OR-kan data dengan isi akumulator   
ORL A,@Rr    Instruksi ini meng-OR-kan isi lokasi memori yang alamatnya ditunjukkan oleh isi register r dengan akumulator   
ORL A,Rr    Instruksi ini meng-OR-kan isi register r dengan akumulator   
ORL A,Alamatdata    Instruksi ini meng-OR-kan isi suatu alamatdata dengan akumulator   
ORL C,alamatbit    Instruksi ini meng-OR-kan isi suatu alamat bit dengan isi carry flag hasilnya disimpan dalam carry flag   
ORL Alamatdata,#data    Instruksi ini meng-OR-kan data dengan isi suatu alamatdata. Hasilnya disimpan pada alamatdata   
ORL Alamatdata,A    Instruksi ini meng-OR-kan isi akumulator dengan isi suatu alamatdata. Hasilnya disimpan pada alamatdata   

POP Alamatdata    Instruksi ini menempatkan byte yang ditunjukan oleh stack pinter ke suatu alamatdata. Kemudian mengurangi satu isi stack pointer   
PUSH Alamatdata    Instruksi ini menaikkan stack pointer kemudian menyimpan isinya ke suatu alamatdata pada lokasi yang ditunjukkan oleh stack pointer  

RET    Instruksi dipakai untuk kembali dari suatu subrutin ke alamat terakhir saat subrutin dipanggil   
RETI    Instruksi ini dipakai untuk kembali dari suatu rutin interrupt   
RL A    Instruksi ini memutar setiap bit dalam akumulator satu posisi ke kiri   
RLC A    Instruksi ini akan memutar bit-bit dalam akumulator satu posisi ke kiri. Bit ke 7 bergerak ke dalam carry flag, sedangkan isi carry flag bergerak menuju bit ke 0 dalam akumulator    
RR A    Instruksi ini akan memutar setiap bit dalam akumulator satu posisi ke kanan   
RRC A    Instruksi ini akan memutar setiap bit dalam akumulator satu posisi ke kanan. Bit ke 0 menuju ke carry flag, sementara isi carry flag masuk ke bit 7 akumulator  

SETB C    Instruksi ini mengset nilai carry flag menjadi 1   
SETB Alamatbit    Instruksi ini akan mengset isi suatu alamatbit menjadi 1   
SUBB A,@Rr    Instruksi ini akan mengurangi isi akumulator dengan carry flag dan isi lokasi memori yang ditunjukan oleh isi register r. hasilnya disimpan dalam akumulator   
SUBB A,#data    Instruksi ini akan mengurangkan isi carry flag dan data dari isi akumulator. Hasilnya disimpan dalam akumulator   
SUBB A,Rr    Instruksi ini akan mengurangi isi akumulator dengan isi carry flag dan isi register r. hasilnya disimpan dalam akumulator   
SUBB A,Alamatdata    Instruksi ini akan mengurangkan isi akumulator dengan isi carry flag dan isi suatu alamatdata   
SJMP Alamatkode    Instruksi ini akan melompat ke alamatkode   
SWAP A    Instruksi ini akan menukar byte bawah (0-3) dengan bit atas (4-7)  

XCH A,@Rr    Instruksi ini akan menukar isi lokasi memori yang alamatnya ditunjukkan oleh isi register r dengan isi akumulator   
XCH A,Alamatdata    Instruksi ini akan menukar isi suatu alamatdata dengan isi akumulator   
XCHD A,@Rr    Instruksi ini akan menukar isi bagian bawah nibble (bit 0-3) dari lokasi memori yang alamatnya ditunjukkan oleh isi register r dengan isi nibble bawah (bit 0-3) akumulator   
XRL A,#data    Instruksi ini akan meng-XOR-kan data dengan isi akumulator   
XRL A,@Rr    Instruksi ini akan meng-XOR-kan isi memori yang lokasinya ditunjukan oleh isi register r dengan isi akumulator   
XRL A,Rr    Instruksi ini akan meng-XOR-kan isi register r dengan isi akumulator   
XRL Alamatdata,#data    Instruksi ini akan meng-XOR-kan data dengan isi suatu alamatdata. Hasilnya disimpan pada alamatdata   
XRL A,Alamatdata    Instruksi ini akan meng-XOR-kan isi suatu alamatdata dengan isi akumulator   
XRL Alamatdata,A    Instruksi ini akan meng-XOR-kan isi akmulator dengan isi suatu alamatdata dan hasilnya disimpan pada alamatdata tersebut   

0 komentar:

Posting Komentar