25
Dasar-Dasar Pemrograman Assembler By Kustanto

Dasar-Dasar Pemrograman Assembler

  • Upload
    chaka

  • View
    160

  • Download
    1

Embed Size (px)

DESCRIPTION

Dasar-Dasar Pemrograman Assembler. By Kustanto. 1. Instruksi (MOV, MOVC, dan MOVX). MOV :digunakan untuk menyalin data antara 2 operand. MOVC :Untuk menyalin data yang terdapat pada memory program internal. MOVX :Untuk menyalin data yang terdapat pada memory program eksternal. Contoh. - PowerPoint PPT Presentation

Citation preview

Page 1: Dasar-Dasar Pemrograman Assembler

Dasar-Dasar Pemrograman

AssemblerBy

Kustanto

Page 2: Dasar-Dasar Pemrograman Assembler

MOV :digunakan untuk menyalin data antara 2 operand.

MOVC :Untuk menyalin data yang terdapat pada memory program internal.

MOVX :Untuk menyalin data yang terdapat pada memory program eksternal

1. Instruksi (MOV, MOVC, dan MOVX)

Page 3: Dasar-Dasar Pemrograman Assembler

Contoh Syntax KeteranganMOV A,R1 Salin nilai R1 ke akumulatorMOV A,@R1 Salin isi lokasi yang ditunjuk R1 ke AMOV A,P1 Salin data pada port 1 ke

AkumulatorMOV P1,A Salin data pada Akumulator ke Port

1MOVC A,@X+DPTR Salin data int. Yang di tunjuk DPTR

ke AMOVX A,@DPTR Salin data eks. Yang ditunjuk DPTR

ke AMOVX @DPTR,A Salin data Akumulator ke lokasi

yang ditunjuk DPTR

Contoh

Page 4: Dasar-Dasar Pemrograman Assembler

ADD : Digunakan untuk melakukan operasi penjumlahan Akumulator dengan suatu operand dan hasilnya disimpan dalam akumulator.

SUBB :Untuk melakukan operasi pengurangan akumulator dengan suatu operand dan hasilnya disimpan dalam akumulator.

2. Instruksi (ADD dan SUBB)

Page 5: Dasar-Dasar Pemrograman Assembler

Contoh Syntax KeteranganADD A,#20 A=A + 20ADD A,@R0 A=A + [R0]SUBB A,B A=A-BSUBB A,#10 A=A-10

Contoh

Page 6: Dasar-Dasar Pemrograman Assembler

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: A=50h B=A0hMUL A,B

hasilnya=3200h maka: A=00h B=32h

3. Instruksi (MUL AB dan DIV AB)

Page 7: Dasar-Dasar Pemrograman Assembler

DIV AB :digunakan untuk melakukan operasi pembagian antara Akumulator dengan regiser B. Hasilnya pembagian disimpan pada Akumulator dan sisa pembagian disimpan pada register B.

Contoh: A=FBh B=12hDIV A,B

Hasilnya= 0Dh maka: A=0Dh B=11h

Page 8: Dasar-Dasar Pemrograman Assembler

DEC :digunakan untuk melakukan pengurangan sebesar satu pada suatu operand.

INC :digunakan untuk melakukan penambahan sebesar satu pada suatu operand.

3. Instruksi (DEC dan INC)

Page 9: Dasar-Dasar Pemrograman Assembler

Syntax KeteranganDEC A A=A-1DEC @R0 [R0]=[R0] – 1INC A A=A + 1INC DPTR DPTR= DPTR + 1

Contoh:

Page 10: Dasar-Dasar Pemrograman Assembler

ORL :Untuk melakukan operasi OR antara dua operand.

ANL :Untuk melakukan operasi AND antara dua operand.

CPL :Untuk melakukan operasi komplemen suatu operand.

4. Intruksi (ORL, ANL dan CPL)

Page 11: Dasar-Dasar Pemrograman Assembler

Syntax Akumulator Register B HasilORL A,B 0011 1010 1111 0000 1111 1010ANL A,B 0011 1010 1111 0000 0011 0000CPL A 0011 1010 1111 0000 1100 0101

Contoh

Page 12: Dasar-Dasar Pemrograman Assembler

RR :Untuk melakukan operasi pergeseran ke kanan sebanyak 1 bit.

RL :Untuk melakukan operasi pergeseran ke kiri sebanyak 1 bit.

SWAP :Untuk melakukan operasi pertukaran data low nible dan high nible

5. Instruksi (RR, RL dan SWAP)

Page 13: Dasar-Dasar Pemrograman Assembler

Syntax Akumulator HasilRR A 0011 1010 0001 1101RL A 0011 1010 0111 0100SWAP A 0011 1010 1010 0011

Contoh

Page 14: Dasar-Dasar Pemrograman Assembler

SETB : digunakan untuk memberikan logik 1 pada bit operand.

CLR :Untuk memberikan logik 0 pada bit operand.

Contoh:SETB P2.0SETB P0.0CLR P2.1

6. Instruksi (SETB dan CLR)

Page 15: Dasar-Dasar Pemrograman Assembler

PUSH :Untuk menyimpan operand ke dalam stack.

POP :Untuk mengembalikan nilai operand dari stack.

DJNZ : Melakukan lompatan jika nilainya di kurangi 1 dan hasilnya tidak nol.

7. Instruksi PUSh dan POP, DJNZ

Page 16: Dasar-Dasar Pemrograman Assembler

push 7push 6push 5mov R7,#04h

loopa: mov R6,#0ffhloopb: mov R5,#0ffh

djnz R5,$djnz R6,loopbdjnz R7,loopapop 5pop 6pop 7

Contoh

Page 17: Dasar-Dasar Pemrograman Assembler

JMP (jump) :Melakukan lompatan ke suatu blok program.

Contoh:

org 00hstart: jmp looporg 300hloop: setb p0.0clr p0.1sjmp loopend

Instruksi JMP

Page 18: Dasar-Dasar Pemrograman Assembler

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: org 00hstart: mov p0,#00hjb p0.0, nyalasjmp start

nyala: setb p2.0sjmp startend

Instruksi JB dan JNB

Page 19: Dasar-Dasar Pemrograman Assembler

org 00hstart: mov p0,#0ffh

jnb p0.0,nyalasjmp start

nyala: setb p2.0sjmp startend

Contoh: instruksi JNB

Page 20: Dasar-Dasar Pemrograman Assembler

JZ (Jump if zero) :Untuk melakukan lompatan ke suatu blok program jika nilai operand 0 (zero).

JNZ (Jump if not zero) : Untuk melakukan lompatan ke suatu blok program jika nilai operand 1 (not zero).

Instruksi JZ dan JNZ

Page 21: Dasar-Dasar Pemrograman Assembler

org 00hutama: mov R1,#10start: dec R1

jz R1,nyalasjmp start

nyala: setb p2.0jmp utamaend

Contoh

Page 22: Dasar-Dasar Pemrograman Assembler

CJNE (Compare and Jump if Not Equal) :Digunakan untuk melakukan pembandingan dua operand dan lompat ke blok program lain jika tidak sama.

Contoh:org 00hutama: mov a,#10tambah: inc acjne a,#20,tambahsetb p2.0sjmp utamaend

Instruksi CJNE

Page 23: Dasar-Dasar Pemrograman Assembler

CALL :dignakan untuk memanggil prosedur tertentu dalam program (subprogram).

RET :digunakan untuk mengembalikan ke baris program yang melakukan CALL.

Instruksi CALL dan RET

Page 24: Dasar-Dasar Pemrograman Assembler

org 00hkedip: setb p2.0call tundaclr p2.0call tundasjmp kedip

tunda: mov r7,#20la: mov r6,#0ffhlb: mov r5,#0ffhdjnz r5,$djnz r6,lbdjnz r7,laret

end

Contoh

Page 25: Dasar-Dasar Pemrograman Assembler

TERIMA KASIHThanks