Jumat, 06 Februari 2015

Dasar-dasar Pemrograman Bahasa Assembler MOV,MOVC dan MOVX Instruksi MOV digunakan untuk menyalin data antara 2 operand. Instruksi MOVC digunakan untuk menyalin data yang terdapat pada memeori program internal. Instruksi MOVX digunakan untuk menyalin data yang terdapat pada memori program eksternal. Contoh Syntax Keterangan MOV A,R1 Salin nilai R1 ke Accumulator MOV A@R1 Salin isi lokasi yag ditunjuk R1 ke A MOV A,P1 Salin data pada Port 1 ke Akumulator MOV P1,A Salin data pada Akumulator ke Port 1 MOVC A,@X+DPTR Salin data int. yang ditunjuk DPTR ke A MOVX A,@DPTR Salin data eks. Yang ditunjuk DPTR ke A MOVX @DPTR,A Salin data akumulator ke lokasi yang ditunjuk DPTR ADD dan SUBB Instruksi ADD digunakan untuk melakukan operasi penjumlahan akumulator dengan suatu operand dan hasilnya disimpan dalam akumulator Instruksi SUBB digunakan untuk melakukan operasi pengurangan akumulator dengan suatu operand dan hasilnya disimpan dalam akumulator. Contoh Syntax Keterangan ADD A,@#20 A = A + 20 ADD A,@R0 A = S + [ R0 } ADD A,B A = A - B ADD A,@10 A = A - 10 MUL AB dan DIV AB Instruksi MUL AB digunakan untuk melakukan operasi perkalian antara akumulator dengan register B. Hasilnya berupa data 16 bit dengan low byte pada A dan high byte pada B. Contoh: Misal A = 50h ; B = A0h MUL a,b Hasil = 3200h, maka A = 00h dan B = 32h Instruksi DIV AB digunakan untuk melakukan operasi pembagian antara akumulator dengan register B. Hasilnya pembagian disimpan pada akumulator dan sisa pembagian disimpan pada register B. Misal : A = FBh ; B = 12h DIV a,b Hasil = 0Dh , maka A = 0Dh B=11h Karena FBh = 0D x 12 + 11 DEC dan INC Instruksi DEC digunakan utnuk melakukan pengurangan sebesar satu pada suatu operand. Instruksi INC digunakan untuk melakukan penambahan sebesar satu pada suatu operand. Contoh Syntaks Keterangan DEC A A = A – 1 DEC @R0 [ R0 ] = [ R0 ] – 1 INC A A = A + 1 INC DPTR DPTR = DPTR + 1 ORL, ANL dan CPL Instruksi ORL digunakan untuk melakukan operasi OR antara dua operand. Instrukis ANL digunakan utnuk melakukan operasi AND antara dua operand. Instruksi CPL digunakan untuk melakukan operasi komplemen suatu operand. Syntaks Akumulator Register B Hasil ORL A,B 0011 1010 1111 0000 1111 1010 ANL A,B 0011 1010 1111 0000 0011 0000 CPL A 0011 1010 1100 0101 RR,RL dan SWAP Instruksi RR digunakan untuk melakukan operasi pergeseran kekanan sebanyak 1 bit . Instruksi RL digunakan utnuk melakukan operasi pergeseran ke kiri sebanyak 1 bit. Instruksi SWAP digunakan utnuk melakukan operasi pertukaran data low nible dan high nible. Syntaks Akumulator Hasil RR A 0011 1010 0001 1101 RL A 0011 1010 0111 0100 SWAP A 0011 1010 1010 0011 SETB dan CLR Instruksi SETB digunakan untuk memberikan logika 1 pada bit operand, Instruksi CLR digunakan untuk memberikan logika 0 pada bit operand. Contoh: SETB p2.0 SETB acc.0 CLR p2.1 CLR acc.1 PUSH dan POP Instruksi PUSH digunakan untuk menyimpan operand ke dalam stack. Instruksi POP digunakan untuk mengembalikan nilai operand dari stack, Contoh : PUSH 7 PUSH 6 PUSH 5 MOV R7,#04H LUPA: MOV R6,#0FFH LUPB: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,LUPA DJNZ R7,LUPB POP 5 POP 6 POP 7 JMP,JB,JNB,JZ,JNZ dan CJNE JMP (jump) digunakan untuk melakukan lpompatan ke suatu blok program. Contoh: Org 00h Start: Jmp loop Org 300h Loop: Setb p0.0 Clr p0.1 Sjmp loop End JB (Jump if Bit) dan JNB (Jump If Not Bit) digunakan untuk melakukan lompatan ke suatu blok program jika nilai operand 1 (bit) atau 0 (Not bit). Contoh JB: Org 00h Start: Mov p0,#00h Jb p0.0,Nyala Sjmp Start Nyala: Setb p2.0 Sjmp Start End Contoh JNB: Org 00h Start: Mov p0,#00h Jnb p0.0,Nyala Sjmp Start Nyala: Setb p2.0 Sjmp Start End JZ (Jump if Zero) dan JNZ (Jump If Not Zero) digunakan utnuk melakukan lpmpatan ke suatu blok program jika nilai operand 0 (Zero) atau <> 0 (Not Zero). Contoh: Org 00h Utama: Mov rl,#10 Jz rl,Nyala Sjmp start Nyala: Setb p2.0 Jmp Utama End CJNE (Compare and Jump If Not Equal) digunakan utnuk melakukan pembandingan dua operand dan lompat ke blok program lain jika tidak sama. Contoh: Org 00h Utama: Mov a,#10 Tambah: Inc a Cjne a,#20,tambah Setb p2.0 Sjmp utama end CALL dan RET Instruksi CALL digunakan untuk memanggil prosedur tertentu dalam program (subprogram). Instruksi RET digunakan untuk mengembalikan ke baris program yang melakukan CALL. Contoh: Org 00h Kedip: Setb p2.0 Call tunda Clr p2.0 Call tunda Sjmp kedip Tunda: Mov r7,#20h La: mov r6,#0ffh Lb: mov r5,#0ffh Djnz r5,$ Djnz r6,lb Djnz r7,la Ret End

Tidak ada komentar:

Posting Komentar