6. Instruksi-instruksi MCS-51
6. Instruksi-instruksi MCS-51
6.1 Pendahuluan 6.1 Pendahuluan
Sebuah m
Sebuah mikrokontroler tidak ikrokontroler tidak akan bekerja akan bekerja bila tidak bila tidak diberikan diberikan programprogram kepadanya. Program tersebut memberitahu mikrokontroler tentang apa kepadanya. Program tersebut memberitahu mikrokontroler tentang apa yang harus dia lakukan.
yang harus dia lakukan.
Mikrokontroler MCS-51 memiliki 256 perangkat instruksi. Seluruh Mikrokontroler MCS-51 memiliki 256 perangkat instruksi. Seluruh instruksi dapat dikelompokkan dalam 4 bagian yang meliputi instruksi 1 instruksi dapat dikelompokkan dalam 4 bagian yang meliputi instruksi 1 byte
byte sampai sampai 4 4 byte. byte. Apabila Apabila frekuensi frekuensi clock clock mikrokontroler mikrokontroler yangyang digunakan adalah 12 Mhz, kecepatan pelaksanaan instruksi akan bervariasi digunakan adalah 12 Mhz, kecepatan pelaksanaan instruksi akan bervariasi dari 1 sampai 4 mikrodetik.
dari 1 sampai 4 mikrodetik.
Instruksi yang dimiliki oleh mikrokontroler MCS-51 pada dasarnya Instruksi yang dimiliki oleh mikrokontroler MCS-51 pada dasarnya digolongkan menjadi :
digolongkan menjadi :
instruksi
instruksi operasi operasi aritmatikaaritmatika operasi logika
operasi logika transfer data transfer data
operasi manipulasi boolean operasi manipulasi boolean perintah
perintah percabangan.percabangan.
Aturan penulisan bahasa assembly-nya tidak jauh berbeda dengan bahasa Aturan penulisan bahasa assembly-nya tidak jauh berbeda dengan bahasa assembly u
assembly untuk IBM PC. ntuk IBM PC. Masing-masinMasing-masing instruksi g instruksi dapat dijelaskan dalamdapat dijelaskan dalam tabel-tabel di bawah ini.
6.1.1. Instruksi MCS-51 6.1.1. Instruksi MCS-51 ADD (Add Immediate Data) ADD (Add Immediate Data)
Operand
Operand : : A A AkkumAkkumulatorulator :
: data data - - 256 256 <= <= data data <= <= + + 255255 Format
Format : : ADD ADD A, A, #data#data Operasi
Operasi : : (A) (A) <- <- (A) (A) + + datadata Keterangan
Keterangan : : instruksi instruksi ini ini menambah menambah 8 8 bit bit data data langsung langsung ke ke dalam dalam isiisi akumulator dan menyimpan hasilny
akumulator dan menyimpan hasilnya pada a pada akumulatorakumulator
ADD (Add Indirect Address) ADD (Add Indirect Address)
Operand
Operand : : A A AkkumAkkumulatorulator :
: Rr Rr Register Register 0 0 <= <= r r <= <= 11 Format
Format : : ADD ADD A, A, @Rr@Rr Operasi
Operasi : : (A) (A) <- <- (A) (A) + + ((Rr))((Rr)) Keterangan
Keterangan : : instruksi instruksi ini ini menambah menambah isi isi data data memori memori yang yang lokasinyalokasinya ditunjukkan oleh
ditunjukkan oleh nilai register nilai register r ke r ke isi akuisi akumulator danmulator dan menyim
menyimpan hasilnya dpan hasilnya dalam akumulatoralam akumulator Contoh
Contoh : : ADD ADD A, A, @R1@R1
ADD (Add Register) ADD (Add Register)
Operand
Operand : : A A AkkumAkkumulatorulator :
: Rr Rr Register Register 0 0 - - 77 Format
Format : : ADD ADD A, A, RrRr Operasi
Keterangan
Keterangan : : instruksi instruksi ini ini menambah menambah isi isi register register r r dengan dengan isiisi akumulator dan menyimpan hasilnya dalam akumulator akumulator dan menyimpan hasilnya dalam akumulator Contoh
Contoh : : ADD ADD A, A, R6R6
ADD (Add Memori) ADD (Add Memori)
Operand
Operand : : A A AkkumAkkumulatorulator :
: Alamat Alamat data data 0 0 <= <= Alamat Alamat data data <= <= 256256 Format
Format : : ADD ADD A, A, Alamat Alamat datadata Keterangan
Keterangan : : instruksi instruksi ini ini menambah menambah isi isi alamat alamat data data ke ke isi isi kumulatorkumulator dan menyimpan hasilnya dalam akumulator
dan menyimpan hasilnya dalam akumulator Contoh
Contoh : : ADD ADD A, A, 30H30H
ADDC (Add Carry Plus Immediate Data To Accumulator) ADDC (Add Carry Plus Immediate Data To Accumulator)
Operand
Operand : : A A AkkumAkkumulatorulator :
: data data -256 -256 <= <= data data <= <= +255+255 Format
Format : : ADDC ADDC A, A, # # datadata Operasi
Operasi : : (A) (A) <- <- (A) (A) + + (C) (C) + + datadata Keterangan
Keterangan : : instruksi instruksi ini ini menambah menambah isi isi carry carry flag flag (0 (0 atau atau 1) 1) ke ke dalamdalam isi akumulator.Data langsung 8 bit ditambahkan ke isi akumulator.Data langsung 8 bit ditambahkan ke akumulator.
akumulator. Contoh
Contoh : : ADDC ADDC A,#0AFHA,#0AFH
ADDC (Add Carry Plus Indirect Address To Accumulator) ADDC (Add Carry Plus Indirect Address To Accumulator)
Operand
Operand : : A A AkkumAkkumulatorulator :
Operasi
Operasi : : (A) (A) <- <- (A) (A) + + (C) (C) + + ((Rr))((Rr)) Keterangan
Keterangan : : instruksi instruksi ini ini menambah menambah isi isi carry carry flag flag (0 (0 atau atau 1) 1) dengandengan isi akumulator. Isi data memori pada lokasi yang isi akumulator. Isi data memori pada lokasi yang ditunjukkan oleh register Rr ditambahkan dan hasilnya ditunjukkan oleh register Rr ditambahkan dan hasilnya disimpan dalam akumulator
disimpan dalam akumulator Contoh
Contoh : : ADDC ADDC A,@R1A,@R1
ADDC (Add Carry Plus Register To Accumulator) ADDC (Add Carry Plus Register To Accumulator)
Operand
Operand : : A A AkkumAkkumulatorulator :
: data data Register Register 0 0 <= <= r r <= <= 77 Format
Format : : ADDC ADDC A, A, RrRr Operasi
Operasi : : (A) (A) <- <- (A) (A) + + (C) (C) + + (Rr)(Rr) Keterangan
Keterangan : : instruksi instruksi ini ini menambah menambah isi isi carry carry flag flag dengan dengan isiisi akumulator. Isi register r ditambahkan dan hasilnya akumulator. Isi register r ditambahkan dan hasilnya disimpan dalam akumulator
disimpan dalam akumulator Contoh
Contoh : : ADDC ADDC A,R7A,R7
ADDC (Add Carry Plus Memory To Accumulator) ADDC (Add Carry Plus Memory To Accumulator)
Operand
Operand : : A A AkkumAkkumulatorulator :
: Alamat Alamat data data 0 0 <= <= Alamat Alamat data data <= <= 255255 Format
Format : : ADDC ADDC A, A, Alamat Alamat datadata Operasi
Operasi : : (A) (A) <- <- (A) (A) + + (C) (C) + + (Alamat (Alamat data)data) Keterangan
Keterangan : : instruksi instruksi ini ini menambah menambah isi isi carry carry flag flag dengan dengan isiisi akumulator.
akumulator. Isi Isi dari alamdari alamat data at data tertentu tertentu ditambahkanditambahkan pula dan hasilnya disim
pula dan hasilnya disimpan dalam akumupan dalam akumulatorlator Contoh
AJMP (Absolute Jump Within 2K byte Page) AJMP (Absolute Jump Within 2K byte Page)
Operand
Operand : : Alamat Alamat kodekode Format
Format : : AJMP AJMP alamat alamat kodekode Operasi
Operasi : : (PC) (PC) <- <- (PC) (PC) + + 22
: (PC) 0-10 <- page address : (PC) 0-10 <- page address Keterangan
Keterangan : : instruksi instruksi ini ini meletakkan meletakkan bagian bagian bawah bawah 11 11 bit bit daridari pencacah program dengan 11 bit alamat y
pencacah program dengan 11 bit alamat yang dikodekan.ang dikodekan.
ANL (Logical AND Immediate Data to Accumulator) ANL (Logical AND Immediate Data to Accumulator)
Operand
Operand : : A A AkkumAkkumulatorulator :
: data data -256 -256 <= <= data data <= <= +255+255 Format
Format : : ANL ANL A, A, #data#data Operasi
Operasi : : (A) (A) <- <- (A) (A) AND AND datadata Keterangan
Keterangan : : instruksi instruksi ini ini meng-ANmeng-AND D kan kan data data 8 8 bit bit secara secara langsunglangsung dengan isi akumulator
dengan isi akumulator Contoh
Contoh : : ANL ANL A,#00001000BA,#00001000B
ANL (Logical AND Indirect Address to Accumulator ANL (Logical AND Indirect Address to Accumulator))
Operand
Operand : : A A AkkumAkkumulatorulator :
: data data Register Register 0 0 <= <= r r <= <= 11 Format
Format : : ANL ANL A, A, @Rr@Rr Operasi
Operasi : : (A) (A) <- <- (A) (A) AND AND ((Rr))((Rr)) Keterangan
Keterangan : : instruksi instruksi ini ini meng-Ameng-AND ND kan kan isi isi memori memori yang yang lokasinyalokasinya ditunjukkan oleh isi register r dengan isi
Contoh
Contoh : : ANL ANL A,@R0A,@R0
ANL (Logical AND Register to Accumulator) ANL (Logical AND Register to Accumulator)
Operand
Operand : : A A AkkumAkkumulatorulator :
: data data 0 0 <= <= Rr Rr <= <= 77 Format
Format : : ANL ANL A, A, RrRr Operasi
Operasi : : (A) (A) <- <- (A) (A) AND AND (Rr)(Rr) Keterangan
Keterangan : : instruksi instruksi ini ini meng-Ameng-AND ND kan kan isi isi register register r r dengan dengan isiisi akumulator
akumulator
ANL (Logical AND Memory to Accumulator) ANL (Logical AND Memory to Accumulator)
Operand
Operand : : A A AkkumAkkumulatorulator :
: Alamat Alamat data data 0 0 <= <= Alamat Alamat data data <= <= 255255 Format
Format : : ANL ANL A, A, Alamat Alamat datadata Operasi
Operasi : : (A) (A) <- <- (A) (A) AND AND (Alamat (Alamat data)data) Keterangan
Keterangan : : instruksi instruksi ini ini meng-Ameng-AND ND kan kan isi isi alamat alamat data data dengan dengan isiisi akumulator
akumulator Contoh
Contoh : : ANL ANL A,35HA,35H
ANL (Logical AND Bit to Carry Flag) ANL (Logical AND Bit to Carry Flag)
Operand :
Operand : C C Carry Carry flagflag :
: Alamat Alamat bit bit 0 0 <= <= alamat alamat bit bit <= <= 255255 Format
Format : : ANL ANL C, C, Alamat Alamat bitbit Operasi
Keterangan
Keterangan : : instruksi instruksi ini ini meng-ANmeng-AND D kan kan isi isi alamat alamat bit bit tertentutertentu dengan isi carry flag. Jika keduanya 1 maka hasilnya 1, dengan isi carry flag. Jika keduanya 1 maka hasilnya 1, selainitu hasilnya 0. Hasilnya ditempatkan pada carry selainitu hasilnya 0. Hasilnya ditempatkan pada carry flag.
flag. Contoh
Contoh : : ANL ANL C, C, 37.337.3
ANL (Logical AND Complement of Bit to Carry Flag) ANL (Logical AND Complement of Bit to Carry Flag)
Operand :
Operand : C C Carry Carry flagflag :
: Alamat Alamat bit bit 0 0 <= <= alamat alamat bit bit <= <= 255255 Format
Format : : ANL ANL C, C, /alamat /alamat bitbit Operasi
Operasi : : (C) (C) <- <- (C) (C) AND AND NOT NOT (alamat (alamat bit)bit) Keterangan
Keterangan : : instruksi instruksi ini ini meng-Ameng-AND ND kan kan hasil hasil komplemen komplemen isi isi alamatalamat bit
bit tertentu tertentu dengan dengan isi isi carry carry flag. flag. Hasilnya Hasilnya ditempatkanditempatkan pada carry flag. Isi alamt bit s
pada carry flag. Isi alamt bit semula tidak berubah.emula tidak berubah. Contoh
Contoh : : ANL ANL A,/40.5A,/40.5
ANL (Logical AND Immediate Data to Memory) ANL (Logical AND Immediate Data to Memory)
Operand
Operand : : Alamat Alamat data data 0 0 <= <= alamat alamat data data <= <= 255255 :
: data data -256 -256 <= <= data data <= <= +255+255 Format
Format : : ANL ANL Alamat Alamat data, data, #data#data Operasi
Operasi : : (Alamat (Alamat data) data) <- <- (Alamat (Alamat data) data) AND AND datadata Keterangan
Keterangan : : instruksi instruksi ini ini meng-ANmeng-AND D kan kan data data 8 8 bit bit secara secara langsunglangsung dengan isi alamat data tertentu. Hasilnya akan disimpan dengan isi alamat data tertentu. Hasilnya akan disimpan dalam memori data pada alamat tersebut.
dalam memori data pada alamat tersebut. Contoh
ANL (Logical AND Accumulator to Memory) ANL (Logical AND Accumulator to Memory)
Operand
Operand : : Alamat Alamat data data 0 0 <= <= Alamat Alamat data data <= <= 255255 :
: A A AkumuAkumulatorlator Format
Format : : ANL ANL Alamat Alamat data, data, AA Operasi
Operasi : : (Alamat (Alamat data) data) <- <- (Alamat (Alamat data) data) AND AND AA Keterangan
Keterangan : : instruksi instruksi ini ini meng- meng- AND AND kan kan isi isi akumulator akumulator dengan dengan isiisi alamat data tertentu. Hasilnya disimpan dalam memori alamat data tertentu. Hasilnya disimpan dalam memori data pada
data pada alamat yang bersangkutanalamat yang bersangkutan Contoh
Contoh : : ANL ANL 10H,A10H,A
CALL (Generic Call) CALL (Generic Call)
Operand
Operand : : Alamat Alamat kodekode Format
Format : : Call Call alamat alamat kodekode Keterangan
Keterangan : : instruksi instruksi ini ini akan akan ditranslasikan ditranslasikan ke ke ACALL ACALL atau atau LCALLLCALL
CJNE (Compare Indirect Address to Immediate Data) CJNE (Compare Indirect Address to Immediate Data) Jump if Not Equal
Jump if Not Equal
Operand
Operand : : Rr Rr Register Register 0<= 0<= r r <= <= 11 :
: data data -256 -256 <= <= data data <= <= +255+255 : Alamat kode
: Alamat kode Format
Format : : CJNE CJNE @Rr, @Rr, #data, #data, alamat alamat kodekode Operasi
Operasi : : (PC) (PC) <- <- (PC) (PC) + + 33
: Jika ((Rr)) <> data, maka (PC) <- (PC) + offset relatif : Jika ((Rr)) <> data, maka (PC) <- (PC) + offset relatif : Jika ((Rr))
: Jika ((Rr)) < < data, maka data, maka (C) <- 1,(C) <- 1, : lainnya (C) <- 0
Keterangan
Keterangan : : instruksi instruksi ini ini akan akan membandingkmembandingkan an data data langsunglangsung dengan lokasi memori yang dialamati oleh register r. dengan lokasi memori yang dialamati oleh register r. Apabila tidak sama, eksekusi akan menuju ke alamat Apabila tidak sama, eksekusi akan menuju ke alamat kode.
kode. Bila Bila sama, sama, instruksi instruksi selanjutnya selanjutnya yang yang akanakan dijalankan.
dijalankan. Jika data langsuJika data langsung lebih besar ng lebih besar dari isi alamdari isi alamatat data tertentu, carry flag akan di - set menjadi 1.
data tertentu, carry flag akan di - set menjadi 1. Contoh
Contoh : : CJNE CJNE @R1, @R1, #01H, #01H, 0009H0009H
CJNE (Compare Immediate Data to Accumulator) CJNE (Compare Immediate Data to Accumulator) Jump if Not Equal
Jump if Not Equal
Operand
Operand : : A A AkumuAkumulatorlator :
: data data -256 -256 <= <= data data <= <= +255+255 : Alamat kode
: Alamat kode Format
Format : : CJNE CJNE A, A, #data, #data, Alamat Alamat kodekode Operasi
Operasi : : (PC) (PC) <- <- (PC) (PC) + + 33
: Jika (A) <> data, maka (PC) <- (PC) + offset relatif : Jika (A) <> data, maka (PC) <- (PC) + offset relatif : Jika (A
: Jika (A) < ) < data, maka data, maka (C) <- 1,(C) <- 1, : lainnya (C) <- 0
: lainnya (C) <- 0 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan membandingkmembandingkan an data data langsung langsung dengandengan isi akumulator. Apabila tidak sama, eksekusi akan isi akumulator. Apabila tidak sama, eksekusi akan menuju ke
menuju ke alamat kode. alamat kode. Bila sama, Bila sama, instruksi sinstruksi selanjutnyaelanjutnya yang
yang akan dijalankan. akan dijalankan. Jika data langsJika data langsung lebih ung lebih besar daribesar dari isi alamat data tertentu, carry flag akan di - set menjadi 1. isi alamat data tertentu, carry flag akan di - set menjadi 1.
CJNE (Compare Memory to Accumulator) CJNE (Compare Memory to Accumulator)
Operand
Operand : : A A AkumuAkumulatorlator :
: Alamat Alamat data data 0 0 <= <= Alamat Alamat data data <= <= 255255 : Alamat kode
: Alamat kode Format
Format : : CJNE CJNE A, A, Alamat Alamat data, data, alamat alamat kodekode Operasi
Operasi : : (PC) (PC) <- <- (PC) (PC) + + 33
: Jika (A) <> Alamat data, maka (PC)
: Jika (A) <> Alamat data, maka (PC) <- (PC) + offset<- (PC) + offset : Jika (A)
: Jika (A) < < Alamat data, mAlamat data, maka (C) <- 1,aka (C) <- 1, : lainnya (C) <- 0
: lainnya (C) <- 0 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan membandingkan membandingkan isi isi lokasi lokasi memorimemori tertentu dengan isi akumulator. Apabila tidak sama, tertentu dengan isi akumulator. Apabila tidak sama, eksekusi
eksekusi akan akan menuju menuju ke ke alamat alamat kode. kode. Bila Bila sama,sama, instruksi
instruksi selanjutnya selanjutnya yang yang akan akan dijalankan. dijalankan. Jika Jika datadata langsung lebih besar dari isi akumulator, carry flag akan langsung lebih besar dari isi akumulator, carry flag akan di - set menjadi 1.
di - set menjadi 1.
CJNE (Compare Immediate Data to Register) CJNE (Compare Immediate Data to Register) Jump if Not Equal
Jump if Not Equal
Operand
Operand : : Rr Rr Register Register 0<= 0<= r r <= <= 77 :
: data data -256 -256 <= <= data data <= <= +255+255 : Alamat kode
: Alamat kode Format
Format : : CJNE CJNE Rr, Rr, #data, #data, Alamat Alamat kodekode Operasi
Operasi : : (PC) (PC) <- <- (PC) (PC) + + 33
: Jika (Rr) <> data, maka (PC) <- (PC) + offset relatif : Jika (Rr) <> data, maka (PC) <- (PC) + offset relatif : Jika (R
: lainnya (C) <- 0 : lainnya (C) <- 0 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan membandingkmembandingkan an data data langsung langsung deng-andeng-an isi register r. Apabila tidak sama, eksekusi akan menuju isi register r. Apabila tidak sama, eksekusi akan menuju ke alamat
ke alamat kode. kode. Bila sama, Bila sama, instruksi instruksi selanjutnya selanjutnya yangyang akan dijalankan.
akan dijalankan. Jika data Jika data langsung langsung lebih besar lebih besar dari isidari isi register, carry flag akan di - set menjadi 1.
register, carry flag akan di - set menjadi 1.
CLR (Clear Accumulator) CLR (Clear Accumulator)
Operand
Operand : : A A AkumuAkumulatorlator Format
Format : : CLR CLR AA Operasi
Operasi : : (A) (A) <- <- 00 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan me-reset me-reset akumulator akumulator menjadi menjadi 00H00H Contoh
Contoh : : CLR CLR AA
CLR (Clear Carry Flag) CLR (Clear Carry Flag)
Operand
Operand : : CC Format
Format : : CLR CLR CC Operasi
Operasi : : (A) (A) <- <- 00 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan me-reset me-reset carry carry flag flag menjadi menjadi 00H00H Contoh
Contoh : : CLR CLR CC
CLR (Clear Bit) CLR (Clear Bit)
Operand
Operasi
Operasi : : (Alamat (Alamat bit) bit) <- <- 00 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan me-reset me-reset alamat alamat bit bit menjadi menjadi 00H00H Contoh
Contoh : : CLR CLR 40.540.5
CPL
CPL (Complemen(Complement t Accumulator)Accumulator)
Operand
Operand : : A A AkumuAkumulatorlator Format
Format : : CPL CPL AA Operasi
Operasi : : (A) (A) <-NOT <-NOT (A)(A) Keterangan
Keterangan : : instruksi instruksi ini ini akan akan mengkomplemmengkomplemen en isi isi akumulatorakumulator Contoh
Contoh : : CPL CPL AA
CPL
CPL (Complemen(Complement t Carry Carry Flag)Flag)
Operand
Operand : : CPL CPL CC Format
Format : : CPL CPL CC Operasi
Operasi : : (C) (C) <-NOT <-NOT (C)(C) Keterangan
Keterangan : : instruksi instruksi ini ini akan akan mengkomplemmengkomplemen en isi isi carry carry flagflag Contoh
Contoh : : CPL CPL CC
CPL
CPL (Complemen(Complement t Bit)Bit)
Operand
Operand : : Alamat Alamat bit bit 0 0 <= <= Alamat Alamat bit bit <= <= 255255 Format
Format : : CPL CPL Alamat Alamat bitbit Operasi
Operasi : : (Alamat (Alamat bit) bit) <-NOT <-NOT (Alamat (Alamat bit)bit) Keterangan
Keterangan : : instruksi instruksi ini ini akan akan mengkomplemmengkomplemen en isi isi suatu suatu alamat alamat bitbit Contoh
Contoh : : CPL CPL 33.733.7
DA
Operand
Operand : : A A AkumuAkumulatorlator Format
Format : : DA DA AA Keterangan
Keterangan : : instruksi instruksi ini ini mengatur mengatur isi isi akumulator akumulator ke ke padanan padanan BCDBCD nya, setelah penambahan dua angka BCD. Jika auxiliary nya, setelah penambahan dua angka BCD. Jika auxiliary carry flag 1 atau isi nibble bawah (bit 0 - 3) dari carry flag 1 atau isi nibble bawah (bit 0 - 3) dari akumulator lebih tinggi dari 9, isi akumulator akan akumulator lebih tinggi dari 9, isi akumulator akan ditambah 6. Jika carry flag di set sebelum atau sesudah ditambah 6. Jika carry flag di set sebelum atau sesudah penambahan
penambahan atau atau isi isi nibble nibble atas atas (bit (bit 4 4 - - 7) 7) lebih lebih tinggitinggi dari 9, isi akumulator akan ditambah 60H.
dari 9, isi akumulator akan ditambah 60H.
DEC (Decrement Indirect Address) DEC (Decrement Indirect Address)
Operand
Operand : : Rr Rr Register Register 0 0 <= <= r r <= <= 11 Format
Format : : DEC DEC @Rr@Rr Operasi
Operasi : : ((Rr)) ((Rr)) <-((Rr)) <-((Rr)) -1-1 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan mengurangi mengurangi isi isi lokasi lokasi memori memori yangyang ditunjukkan oleh register r dengan 1. Hasilnya disimpan ditunjukkan oleh register r dengan 1. Hasilnya disimpan dalam lokasi tersebut.
dalam lokasi tersebut.
DEC (Decrement Accumulator) DEC (Decrement Accumulator)
Operand
Operand : : A A AkumuAkumulatorlator Format
Format : : DEC DEC AA Operasi
Operasi : : (A) (A) <-(A) <-(A) -1-1 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan mengurangi mengurangi isi isi akumulator akumulator dengan dengan 1.1. Hasilnya disimpan dalam akumulator
Hasilnya disimpan dalam akumulator Contoh
DEC (Decrement Register) DEC (Decrement Register)
Operand
Operand : : Rr Rr Register Register 0 0 <= <= r r <= <= 77 Format
Format : : DEC DEC RrRr Operasi
Operasi : : (Rr) (Rr) <-(Rr) <-(Rr) -1-1 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan mengurangi mengurangi isi isi register register r r dengan dengan 1.1. Hasilnya disimpan dalam register r
Hasilnya disimpan dalam register r Contoh
Contoh : : DEC DEC R7R7
DEC (Decrement Memory) DEC (Decrement Memory)
Operand
Operand : : Alamat Alamat data data 0 0 <= <= Alamat Alamat data data <= <= 255255 Format
Format : : DEC DEC Alamat Alamat datadata Operasi
Operasi : : (Alamat (Alamat data) data) <-(Alamat <-(Alamat data) data) -1-1 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan mengurangi mengurangi isi isi alamat alamat data data dengan dengan 1.1. Hasilnya disimpan dalam alamat tersebut.
Hasilnya disimpan dalam alamat tersebut.
DIV (Divide Accumulator by B) DIV (Divide Accumulator by B)
Operand
Operand : : AB AB Pasangan Pasangan registerregister Format
Format : : DIV DIV ABAB Operasi
Operasi : : (AB) (AB) <-(A)/(B)<-(A)/(B) Keterangan
Keterangan : : instruksi instruksi ini ini membagi membagi isi isi akumulator akumulator dengan dengan isi isi registerregister B. Kedua operand adalah bilangan integer tak bertanda. B. Kedua operand adalah bilangan integer tak bertanda. Akumulator berisi hasil bagi, register B berisi sisa Akumulator berisi hasil bagi, register B berisi sisa pembagian
pembagian Contoh
Contoh : : MOV MOV B, B, #5H#5H : DIV AB
DJNZ ( Decrement Register And Jump If Not
DJNZ ( Decrement Register And Jump If Not Zero)Zero)
Operand
Operand : : Rr Rr Register Register 0 0 <= <= r r <= <= 77 : Alamat kode
: Alamat kode Format
Format : : DJNZ DJNZ Rr, Rr, Alamat Alamat kodekode Operasi
Operasi : : (PC) (PC) <-(PC) <-(PC) + + 22 : (Rr) <- (Rr) -1 : (Rr) <- (Rr) -1
: Jika (Rr) <> 0, maka (PC) <- (PC) + offset relatif : Jika (Rr) <> 0, maka (PC) <- (PC) + offset relatif Keterangan
Keterangan : : instruksi instruksi ini ini mengurangi mengurangi register register r r dengan dengan 1 1 dan dan me- me-nempatkan
nempatkan hasilnya hasilnya pada register tertentupada register tertentu. . Jika hasJika hasilnyailnya sudah 0, instruksi selanjutnya yang akan dieksekusi. Jika sudah 0, instruksi selanjutnya yang akan dieksekusi. Jika belum 0, eksekus
belum 0, eksekusi akan menuju ki akan menuju ke alamat kode.e alamat kode.
DJNZ ( Decrement Memory And Jump If Not
DJNZ ( Decrement Memory And Jump If Not Zero)Zero)
Operand
Operand : : Alamat Alamat data data 0 0 <= <= Alamat Alamat data data <= <= 255255 : Alamat kode
: Alamat kode Format
Format : : DJNZ DJNZ Alamat Alamat data, data, Alamat Alamat kodekode Operasi
Operasi : : (PC) (PC) <-(PC) <-(PC) + + 33
: (Alamat data) <- (Alamat data) -1 : (Alamat data) <- (Alamat data) -1
: Jika (Alamat data) <> 0, maka (PC) <- (PC) + offset : Jika (Alamat data) <> 0, maka (PC) <- (PC) + offset Keterangan
Keterangan : : instruksi instruksi ini ini mengurangi mengurangi alamat alamat data data dengan dengan 1 1 dan dan me- me-nempatkan
nempatkan hasilnya hasilnya pada alamat pada alamat tersebut. tersebut. Jika hasilnJika hasilnyaya sudah 0, instruksi selanjutnya yang akan dieksekusi. Jika sudah 0, instruksi selanjutnya yang akan dieksekusi. Jika belum 0, eksekus
belum 0, eksekusi akan menuju ki akan menuju ke alamat kode.e alamat kode.
INC (Increment Indirect Address) INC (Increment Indirect Address)
Format
Format : : INC INC @Rr@Rr Operasi
Operasi : : ((Rr)) ((Rr)) <-((Rr)) <-((Rr)) +1+1 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan menambah menambah isi isi lokasi lokasi memori memori yangyang ditunjukkan oleh register r dengan 1. Hasilnya disimpan ditunjukkan oleh register r dengan 1. Hasilnya disimpan dalam lokasi tersebut.
dalam lokasi tersebut.
INC (Increment Accumulator) INC (Increment Accumulator)
Operand
Operand : : A A AkumuAkumulatorlator Format
Format : : INC INC AA Operasi
Operasi : : (A) (A) <-(A) <-(A) +1+1 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan menambah menambah isi isi akumulator akumulator dengan dengan 1.1. Hasilnya disimpan dalam akumulator
Hasilnya disimpan dalam akumulator Contoh
Contoh : : INC INC AA
INC (Increment Data Pointer) INC (Increment Data Pointer)
Operand
Operand : : DPTR DPTR Data Data PointerPointer Format
Format : : INC INC DPTRDPTR Operasi
Operasi : : (DPTR) (DPTR) <-(DPTR) <-(DPTR) +1+1 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan menambah menambah isi isi data data pointer pointer dengan dengan 1.1. Hasilnya disimpan pada data poniter
Hasilnya disimpan pada data poniter Contoh
Contoh : : INC INC DPTRDPTR
INC (Increment Register) INC (Increment Register)
Operand
Operand : : Rr Rr Register Register 0 0 <= <= r r <= <= 77 Format
Format : : INC INC RrRr Operasi
Keterangan : instruksi ini akan menambah isi register r dengan 1. Keterangan : instruksi ini akan menambah isi register r dengan 1.
Hasilnya disimpan dalam register tersebut Hasilnya disimpan dalam register tersebut Contoh
Contoh : : INC INC R7R7
INC (Increment Memory) INC (Increment Memory)
Operand
Operand : : Alamat Alamat data data 0 0 <= <= Alamat Alamat data data <= <= 255255 Format
Format : : INC INC Alamat Alamat datadata Operasi
Operasi : : (Alamat (Alamat data) data) <-(Alamat <-(Alamat data) data) +1+1 Keterangan
Keterangan : : instruksi instruksi ini ini akan akan menambah menambah isi isi alamat alamat data data dengan dengan 1.1. Hasilnya disimpan dalam alamat tersebut.
Hasilnya disimpan dalam alamat tersebut. Contoh
Contoh : : INC INC 37H37H
JB (Jump if Bit is Set) JB (Jump if Bit is Set)
Operand
Operand : : Alamat Alamat bit bit 0 0 <= <= Alamat Alamat bit bit <= <= 255255 : Alamat kode
: Alamat kode Format
Format : : JB JB Alamat Alamat bit, bit, alamat alamat kodekode Operasi
Operasi : : (PC) (PC) <- <- (PC) (PC) + + 33
: Jika (Alamat bit) = 1, maka (PC) <- (PC) + offset relatif : Jika (Alamat bit) = 1, maka (PC) <- (PC) + offset relatif Keterangan
Keterangan : : instruksi instruksi ini ini akan akan menguji menguji suatu suatu alamat alamat bit. bit. Jika Jika berisi berisi 1,1, ekesekusi akan menuju alamat kode. Jika tidak, instruksi ekesekusi akan menuju alamat kode. Jika tidak, instruksi selanjutnya akan dieksekusi. Pencacah program akan selanjutnya akan dieksekusi. Pencacah program akan dinaikkan pada instruksi selanjutnya. Jika pengujian dinaikkan pada instruksi selanjutnya. Jika pengujian berhasil,
berhasil, offset offset relatif relatif akan akan ditambahkan ditambahkan ke ke pencacahpencacah program
program yang yang telah telah dinaikkan dinaikkan dan dan instruksi instruksi pada pada alamatalamat ini akan dieksekusi.