Dasar-Dasar Pemrograman Assembler

Download Report

Transcript Dasar-Dasar Pemrograman Assembler

By
Kustanto



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 Syntax
Keterangan
MOV A,R1
Salin nilai R1 ke akumulator
MOV A,@R1
Salin isi lokasi yang 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 di tunjuk 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 : 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.
Contoh Syntax
Keterangan
ADD A,#20
A=A + 20
ADD A,@R0
A=A + [R0]
SUBB A,B
A=A-B
SUBB A,#10
A=A-10


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=A0h
MUL A,B
hasilnya=3200h
maka: A=00h B=32h


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
DIV A,B
Hasilnya= 0Dh
maka: A=0Dh
B=12h
B=11h


DEC :digunakan untuk melakukan
pengurangan sebesar satu pada suatu
operand.
INC :digunakan untuk melakukan penambahan
sebesar satu pada suatu operand.
Syntax
Keterangan
DEC A
A=A-1
DEC @R0
[R0]=[R0] – 1
INC A
A=A + 1
INC DPTR
DPTR= DPTR + 1



ORL :Untuk melakukan operasi OR antara dua
operand.
ANL :Untuk melakukan operasi AND antara dua
operand.
CPL :Untuk melakukan operasi komplemen
suatu operand.
Syntax
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
1111 0000
1100 0101



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
Syntax
Akumulator
Hasil
RR A
0011 1010
0001 1101
RL A
0011 1010
0111 0100
SWAP A
0011 1010
1010 0011



SETB : digunakan untuk memberikan logik 1
pada bit operand.
CLR :Untuk memberikan logik 0 pada bit
operand.
Contoh:
SETB P2.0
SETB P0.0
CLR P2.1



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.
loopa:
loopb:
push 7
push 6
push 5
mov R7,#04h
mov R6,#0ffh
mov R5,#0ffh
djnz R5,$
djnz R6,loopb
djnz R7,loopa
pop 5
pop 6
pop 7

JMP (jump) :Melakukan lompatan ke suatu blok
program.
Contoh:
start:
loop:
org 00h
jmp loop
org 300h
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:
start:
nyala:
org 00h
mov p0,#00h
jb p0.0, nyala
sjmp start
setb p2.0
sjmp start
end
start:
nyala:
org 00h
mov p0,#0ffh
jnb p0.0,nyala
sjmp start
setb p2.0
sjmp start
end


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).
org 00h
utama: mov R1,#10
start:
dec R1
jz R1,nyala
sjmp start
nyala:
setb p2.0
jmp utama
end


CJNE (Compare and Jump if Not Equal) :Digunakan
untuk 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 :dignakan untuk memanggil prosedur
tertentu dalam program (subprogram).
RET :digunakan untuk mengembalikan ke baris
program yang melakukan CALL.
kedip:
tunda:
la:
lb:
org 00h
setb p2.0
call tunda
clr p2.0
call tunda
sjmp kedip
mov r7,#20
mov r6,#0ffh
mov r5,#0ffh
djnz r5,$
djnz r6,lb
djnz r7,la
ret
end
TERIMA
KASIH