DJNZ Decreament and Jump If Not Zero JNB Jump If Bit Is Not Set

1. Percabangan dengan Syarat

a. CJNE Compare Jumpe If Not Equal

Instruksi ini akan membandingkan isi register atau isi memori dengan satu dat. Bila sama, instruksi selanjutnya yang akan dituju. Bila tidak sama, instruksi yang ditunjuk oleh label yang akan dilaksanakan. Sebagai contoh : CJNE R0,0FFH,1sb Berarti jika R0 tidak sama dengan 0FFH maka instruksi akan menuju ke alamat label 1 sb.

b. DJNZ Decreament and Jump If Not Zero

Instruksi ini akan mengurangi isi register atau isi memori dengan satu. Bila sudah 0, instruksi selanjutnya yang akan dilaksanakan. Bila belum 0, instruksi dilanjutkan ke label. Sebagai contoh : DJNZ mem_ultra,ultras Berarti jika mem_ultra tidak sama demgan nol setelah dikurangi satu, pelaksanaan instruksi harus melompat ke label ultras.

c. JNB Jump If Bit Is Not Set

Instruksi ini menguji satu alamat bit. Bila sisinya 0, eksekusi akan menuju alamat kode. Jika isinya 1, instruksi selanjutnya yang akan dilaksanakan. Sebagai contoh : JNB TI, Instruksi ini menguji apakah data sudah dikirim, jika belum periksa kembali. Dimana artinya lompat ke nilai program counter pada baris itu sendiri. Universitas Sumatera Utara

2. Percabangan Tanpa Syarat

Instruksi ini meliputi SJMP Short Jump dan LJMP Long Jump. Sebagai contoh: SJMP selesai Eksekusi program akan menyatakan selesai tanpa syarat apapun.

2.3.10.5 Instruksi Transfer Data

Instruksi transfer data terbagi menjadi dua kelas operasi sebagai berikut : a. Transfer data utama General Purpose Transfer, yaitu : MOV,PUSH, dan POP. b.Transfer spesifik akumulator Accumulator Specifik Transfer, yaitu : XCH, XCHD dan MOV C. Instruksi transfer data adalah instruksi pemindahan atau pertukaran data antara operand sumber dengan operand tujuan. Operandnya dapat berupa register, memori atau lokasi suatu memori.

2.3.10.6 Instruksi Aritmatika Instruksi Perhitungan

Operasi dasar aritmatik seperti seperti penjumlahan, pengurangan, perkalian, dan pembagian, dimiliki oleh AT89S51 dengan mnemonic : INC, ADD, ADDC, SUBB, DEC, MUL, dan DIV. Universitas Sumatera Utara

2.3.10.7 Instruksi Logika

Mikrokontroler AT89S51 dapat melakukan operasi logika bit maupun operasi logika byte. Operasi logika tersebut dibagi atas dua bagian yaitu : 1. Operasi logika operand tunggal, yaitu : CLR, SETB, CPL, RLC, RR, RRC,SWAB. 2. Operasi logika dua operand, yakni operasi AND kode operasi ANL, operasi OR kode operasi ORL, operasi Exclusive-OR kode operasi XRL. Data yang bisa dipakai dalam operasi ini bisa berupa data yang berada dalam akumulator atau data yang berada dalam memori data, hal ini sedikit berbeda dengan operasi aritmatik yang harus melibatkan akumulator secara aktif.

2.3.10.8 Instruksi Transfer Kendali

Instruksi transfer kendali control transfer terdiri dari tiga kelas operasi yaitu: 1. Lompatan tidak bersyarat Unconditional jump, seperti : ACALL, AJMP, LJMP, SJMP, JMP A+DPTR. 2. Lompatan bersyarat Conditional jump, seperti : JZ, JNZ, JB, CJNE, dan DJNZ. 3. Interupsi seperti RET1 dan RET.

2.4 Special Function Register SFR