Anda di halaman 1dari 12

A.

Operasi ALU

1.

Instruksi MCS51
ADD

ADD

2.
3.
4.
5.
6.

ADD A, Rn
ADD A, direct
ADD A, @RI
ADD A, #data
ADDC

ADC

7.
8.

ADDC A, Rn
ADDC A, direct

9.

ADDC A, @RI

10.

ADDC A, #data

No.

11.

Instruksi AVR

ADIW

12.
13.
14.
15.

SUBB
SUBB A, Rn
SUBB A, direct
SUBB A, @RI

16.

SUBB A, #data

SUB

17.

SUBI

18.

SBC

19.

SBCI

20.

SBIW

21.
22.

INC
INC Rn

23.

INC direct

24.

INC @RI

25.

INC DPTR

INC

Keterangan Fungsi
Menambahkan nilai register dengan
akumulator
Add register to Accumulator
Add direct byte to Accumulator
Add indirect RAM to Accumulator
Add immediate data to Accumulator
Menambahkan nilai register dengan
akumulator dan nilai bawaan
Add register to Accumulator with Carry
Add direct byte to Accumulator with
Carry
Add in direct RAM to Accumulator with
Carry
Add Immediate data to Acc
with Carry
Instruksi yang hanya ada pada AVR
Add immediate to word
Melakukan pengurangan tanpa carry
Subtract Register From Acc with borrow
Subtrect direct byte from Acc With borrow
Instruksi yang hanya ada pada MCS-51
Subfrectindiract RAM fromACC with
borrow
Instruksi yang hanya ada pada MCS-51
Subtract immediate date from Acc with
borrow
Instruksi yang hanya ada pada AVR
Substract immediate
Instruksi yang hanya ada pada AVR
Substract with carry
Instruksi yang hanya ada pada AVR
Substract immediate with carry
Instruksi yang hanya ada pada AVR
Substract immediate with word
Increment Accumulat
Instruksi hanya ada di MCS-51
Incrsmsnt registe
Instruksi hanya ada di MCS-51
Increment direct byte
Instruksi hanya ada di MCS-51
Increment direct RAM
Instruksi hanya ada di MCS-51
Instruksi yang hanya ada pada MCS-51

26. DEC
927. DEC Rn
28.

DEC direct

29.

DEC @RI

30.
31.

MUL AB

DEC

MUL
MULS

32.

MULSU

33.

FMUL

34.

FMULS

35.

FMULSU

36.

DIV AB

37.

DA A

38.
39.
40.

ANL

41.

ANL A, direct

42.

ANL A, @RI

43.

ANL A, #data

44.

ANL direct, A

45.

ANL direct, #data

46.
47.

ORL

48.

ORL A, Rn

49.

ORL A, direct

50.

ORL A, @RI

51.

ORL A, #data

52.

ORL direct, A

AND
ANDI

ANL A, Rn

OR
ORI

Mengurangi isi akumulator dengan 1


Instruksi hanya ada di MCS-51
Decrement Regiete
Instruksi hanya ada di MCS-51
Decrement direct byte
Instruksi hanya ada di MCS-51
Decrement Indirect RAM
MultiPiy unsigned
Instruksi yang hanya ada pada AVR
MultiPiy signed
Instruksi yang hanya ada pada AVR
MultiPiy signed with unsigned
Instruksi yang hanya ada pada AVR
Fractional MultiPiy unsigned
Instruksi yang hanya ada pada AVR
Fractional MultiPiy signed
Instruksi yang hanya ada pada AVR
Fractional MultiPiy signed with unsigned
Instruksi hanya ada di MCS-51
Divide AbyB
Instruksi hanya ada di MCS-51
Decimel Adjuet Accumula
Fungsi logika AND
Instruksi yang hanya ada pada AVR
Instruksi hanya ada di MCS-51
AND Regieterto Accumulat
Instruksi hanya ada di MCS-51
AND diract byte to Accumulat
Instruksi hanya ada di MCS-51
AND indirect RAM to Accumulator
Instruksi hanya ada di MCS-51
AND immediate data to Accumulator
Instruksi hanya ada di MCS-51
AND Accumulator todirect byte
Instruksi hanya ada di MCS-51
AND immediate data todirect byte
Fungsi logika OR
Instruksi yang hanya ada pada AVR
Logika OR with immediate
Instruksi hanya ada di MCS-51
OR register to Accumulator
Instruksi hanya ada di MCS-51
OR direct byte to Accumulator
Instruksi hanya ada di MCS-51
OR indiract RAM to Accumulator
Instruksi hanya ada di MCS-51
OR immediate data to Accumulator
Instruksi hanya ada di MCS-51

53.

ORL direct, #data

54.
55.

XRL
XRL A, Rn

56.

XRL A, direct

57.

XRL A, @RI

58.

XRL A, #data

59.

XRL direct, A

60.

XRL direct, #data

61.

CLR

CLR

62.

CPL

COM/NEG

EOR

63.

SER

64.

TST

65.

SBR

66.

CBR

67.

RL

68.

RLC

69.

RC

70.

RRC

OR Accumulator todirect byte


Instruksi hanya ada di MCS-51
OR immediate detetodiract byte
Exclusive-OR
Instruksi hanya ada di MCS-51
Exclusive-Or register to Armmulator
Instruksi hanya ada di MCS-51
Exclusive-OR direct byte to Accumulator
Instruksi hanya ada di MCS-51
Exclusive-OR indirect RAM to
Accumulator
Instruksi hanya ada di MCS-51
Exclusive-OR immediate data to
Accumulator
Instruksi hanya ada di MCS-51
Excluaive-OR Accumulator to direct byte
Instruksi hanya ada di MCS-51
Exclueive-OR immediate date to direct
byte
Instruksi yang sama dengan fungsi yang
berbeda.
Pada MCS-51, CLR untuk
menghapus isi akumulator.
Pada AVR, CLR untuk mengapus
register.
Komplemen Akumulator
Pada AVR, COM sebagai Ones
Complement dan NEG sebagai
Twos Complement
Instruksi yang hanya ada pada AVR
Mengeset register
Instruksi yang hanya ada pada AVR
Mengecek nilai 0 dan minus
Instruksi yang hanya ada pada AVR
Mengeset bit dalam register
Instruksi yang hanya ada pada AVR
Menghapus bit dalam register
Instruksi hanya ada di MCS-51
Memutar akumulator ke kiri
Instruksi hanya ada di MCS-51
Memutar akumulator ke kiri dengan carry
Instruksi hanya ada di MCS-51
Memutar akumulator ke kanan
Instruksi hanya ada di MCS-51
Memutar akumulator ke kanan dengan
carry

71.

SWAP

Instruksi hanya ada di MCS-51


Swap nibbles within the Accumulator

B. Operasi Data Transfer


No. Instruksi MCS-51 Instruksi AVR
1.
MOV
MOV

2.
3.

MOV A, Rn

MOVW

4.

MOV A, direct

5.

MOV A, @RI

6.

MOV A, #data

7.

MOV Rn, A

8.

MOV Rn, direct

9.

MOV Rn, #data

10.

MOV direct, A

11.

MOV direct, Rn

12.

MOV direct, direct

13.

MOV direct, #data

14.

MOV direct, @RI

15.

MOV @RI, A

16.

MOV @RI, direct

17.

MOV @RI, #data

Keterangan Fungsi
Instruksi yang sama dengan fungsi yang
berbeda.
Pada MCS-51, MOV untuk
memindahkan register ke
akumulator.
Pada AVR, MOV untuk meng-copy
register.
Copy register pair
Instruksi hanya ada di MCS-51
Memindahkan register ke akumulator
Instruksi hanya ada di MCS-51
Memindahkan bit ke akumulator secara
langsung
Instruksi hanya ada di MCS-51
Memindahkan RAM ke akumulator secara
tidak langsung
Instruksi hanya ada di MCS-51
Memindahkan data ke akumulator dengan
segera
Instruksi hanya ada di MCS-51
Memindahkan akumulator ke register
Instruksi hanya ada di MCS-51
Memindahkan bit ke register secara
langsung
Instruksi hanya ada di MCS-51
Memindahkan data ke register dengan
segera
Instruksi hanya ada di MCS-51
Move Accumulator to direct byte
Instruksi hanya ada di MCS-51
Move register to direct byte
Instruksi hanya ada di MCS-51
Move direct byte todiract
Instruksi hanya ada di MCS-51
Move immediate data todirect byte
Instruksi hanya ada di MCS-51
Move indirect RAM to direct byte
Instruksi hanya ada di MCS-51
Move Accumulator indirect RAM
Instruksi hanya ada di MCS-51
Move direct byte to indirect RAM
Instruksi hanya ada di MCS-51

Move immediate date to indirect RAM


18.
19.
20.
21.
22.

MOV DPTR,
#data16
MOVC A,
@A+DPTR
MOVC A,
@A+PC
MOVX A, @RI

23.

MOVX A,
@DPTR
MOVX @RI, A

24.

MOVX @DPTR,A

25.
26.
27.

PUSH
POP
XCH A, Rn

28.

XCH A, direct

29.

XCH A, @RI

30.

XCHD A, @RI

PUSH
POP

31.

LDI

32.

LDS

33.

LD

34.

LD

35.

LD

36.

LD

37.

LD

Instruksi hanya ada di MCS-51


Load Data Pointer with a 16 bit constant
Instruksi hanya ada di MCS-51
MoveMe byte relative to DPTR to Acc
Instruksi hanya ada di MCS-51
Move Code by terelative to PC to Acc
Instruksi hanya ada di MCS-51
MoveExternal RAM(8-biteddr) toAcc
Instruksi hanya ada di MCS-51
Move External RAM(l&bitaddr) to Acc
Instruksi hanya ada di MCS-51
Move Acc to External RAM(8-bit addr)
Instruksi hanya ada di MCS-51
Move Acc to External RAM(lS-bitaddr)
Melakukan push register dalam stack
Melakukan pop register dalam stack
Instruksi hanya ada di MCS-51
Exchange register with Accumulator
Instruksi hanya ada di MCS-51
Exchange direct byte with Accumulator
Instruksi hanya ada di MCS-51
Exchange indirect RAM with Accumulator
Instruksi hanya ada di MCS-51
Exchange low order Digit indirect RAM
with Acc
Instruksi yang hanya ada pada AVR
Load immediate
RdK
Instruksi yang hanya ada pada AVR
Load direct from data space
Rd(k)
Instruksi yang hanya ada pada AVR
Load in direct
Rd (X)
Instruksi yang hanya ada pada AVR
Load in direct
Rd (X), X X +1
Instruksi yang hanya ada pada AVR
Load in direct
X X - 1, Rd (X)
Instruksi yang hanya ada pada AVR
Load in direct
Rd (Y)
Instruksi yang hanya ada pada AVR
Load in direct

38.

LD

39.

LDD

40.

LD

41.

LD

42.

LD

43.

LDD

44.

STS

45.

ST

46.

ST

47.

ST

48.

ST

49.

ST

50.

ST

51.

STD

52.

ST

53.

ST

Rd (Y), Y Y +1
Instruksi yang hanya ada pada AVR
Load in direct
Y Y - 1, Rd (Y)
Instruksi yang hanya ada pada AVR
Load in direct with displacement
Rd (Y + q)
Instruksi yang hanya ada pada AVR
Load in direct
Rd (Z)
Instruksi yang hanya ada pada AVR
Load in direct
Rd (Z), Z Z+1
Instruksi yang hanya ada pada AVR
Load in direct
Z Z- 1, Rd (Z)
Instruksi yang hanya ada pada AVR
Load in direct displacement
Rd (Z + q)
Instruksi yang hanya ada pada AVR
Store direct to data space
Rd (k)
Instruksi yang hanya ada pada AVR
Store in direct
(X) Rr
Instruksi yang hanya ada pada AVR
Store in direct
(X) Rr, X X+1
Instruksi yang hanya ada pada AVR
Store in direct
X X - 1 , (X) Rr
Instruksi yang hanya ada pada AVR
Store in direct
(Y) Rr
Instruksi yang hanya ada pada AVR
Store in direct
(Y) Rr, Y Y+1
Instruksi yang hanya ada pada AVR
Store in direct
Y Y - 1 , (Y) Rr
Instruksi yang hanya ada pada AVR
Load in direct with displacement
(Y + q) Rr
Instruksi yang hanya ada pada AVR
Store in direct
(Z) Rr
Instruksi yang hanya ada pada AVR
Store in direct

54.

ST

55.

STD

56.

LPM

57.

LPM

58.

LPM

59.

ELPM

60.

ELPM

61.

ELPM

62.

SPM

63.

ESPM

64.

IN

65.

OUT

(Z Rr, Z Z+1
Instruksi yang hanya ada pada AVR
Store in direct
Z Z - 1 , (Z) Rr
Instruksi yang hanya ada pada AVR
Store in direct with displacement
(Z + q) Rr
Instruksi yang hanya ada pada AVR
Load program memory
R0 (Z)
Instruksi yang hanya ada pada AVR
Load program memory
Rd (Z)
Instruksi yang hanya ada pada AVR
Load program memory
Rd (Z), Z Z+1
Instruksi yang hanya ada pada AVR
Extended Load program memory
R0 (RAMPZ:Z)
Instruksi yang hanya ada pada AVR
Extended Load program memory
Rd (RAMPZ:Z)
Instruksi yang hanya ada pada AVR
Extended Load program memory
Rd (RAMPZ:Z), Z Z+1
Instruksi yang hanya ada pada AVR
Extended Load program memory
(Z) R1:R0
Instruksi yang hanya ada pada AVR
Extended Load program memory
(RAMPZ:Z) R1:R0
Instruksi yang hanya ada pada AVR
Extended Load program memory
Rd I/O(A)
Instruksi yang hanya ada pada AVR
Extended Load program memory
I/O(A) Rr

C. Operasi Program Branching


No. Instruksi MCS-51 Instruksi AVR
1.
ACALL
CALL
2.
LCALL
LCALL
3.

ICALL

4.
5.

EICALL
RET

RET

Keterangan Fungsi
Mutlak memanggil sub routine
Memanggil sub routine secara tidak
langsung
Memanggil sub routine secara tidak
langsung
Instruksi yang hanya ada pada AVR
Mengembalikan subroutine

6.

RETI

RETI

7.
8.

AJMP
LJMP

JMP

9.

SJMP

10.

JMP @A + DPTR

11.

RJMP

12.

IJMP

13.

EIJMP

14.
15.
16.

JZ
JNZ
CJNE A, direct, rel

17.

CJNE A, #data, rel

18.

CJNE Rn, #data,


rel

19.

CJNE @RI, #data,


rel

20.

DJNZ Rn, rel

21.

DJNZ direct, rel

22.

NOP

23.

CP

24.

CPSE

25.

CPI

Mengembalikan subroutine secara tidak


langsung
Mutlak melewati subroutine
Instruksi yang hanya ada pada MCS-51
Melewati perintah secara tidak langsung
Melewati satu perintah menuju ke
beberapa perintah berikutnya sesuai
masukan konstantanya
Instruksi yang hanya ada pada MCS-51
Melewati perintah
Melewati satu perintah menuju ke
beberapa perintah berikutnya sesuai
masukan konstantanya
Instruksi yang hanya ada pada AVR
Melewati perintah secara tidak langsung
Instruksi yang hanya ada pada AVR
Extended indirect jump to
Melewati jika akumulator nol
Melewati jika akumulator tidak nol
Instruksi yang hanya ada pada MCS-51
Membandingkan direct byte ke akumulator
dan melompati jika tidak sama
Instruksi yang hanya ada pada MCS-51
Membandingkan immediate ke akumulator
dan melompati jika tidak sama
Instruksi yang hanya ada pada MCS-51
Membandingkan immediate ke register dan
melompat jika tidak sama
Instruksi yang hanya ada pada MCS-51
Membandingkan immediate ke indirect dan
melompat jika tidak sama
Instruksi yang hanya ada pada MCS-51
Melakukan pengurangan register dan jump
apabila tidak 0
Instruksi yang hanya ada pada MCS-51
Melakukan pengurangan bit dan jump
apabila tidak 0
Instruksi hanya ada di MCS-51
Bukan operasi
Instruksi yang hanya ada pada AVR
Membandingkan akumulator dengan
register
Instruksi yang hanya ada pada AVR
Membandingkan akumulator dengan
register, dan akan dilewati jika nilai sama
Instruksi yang hanya ada pada AVR

26.

CPC

27.

SBRC

28.
29.

SBRS
SBIS

30.

SBIC

31.

BRBS

32.

BRBC

33.

BREQ

34.

BRNE

35.

BRCS

36.

BRCC

37.

BRSH

38.

BRLO

39.

BRMI

40

BRPL

41.

BRGE

42.

BRLT

43.

BRHS

44.

BRHC

45.

BRTS

membandingkan akumulator secara


langsung
Instruksi yang hanya ada pada AVR
membandingkan akumulator dengan
register dengan nilai bawaan
Instruksi yang hanya ada pada AVR jika
nilai bit dalam register kosong maka lewati
perintah
Instruksi yang hanya ada pada AVR
Instruksi yang hanya ada pada AVR jika
nilai bit dalam I/O satu maka lewati
perintah
Instruksi yang hanya ada pada AVR
jika nilai bit dalam I/O kosong maka
lewati perintah
Instruksi yang hanya ada pada AVR
jika status arahnya terset maka branchkan
Instruksi yang hanya ada pada AVR
jika status arahnya kosong maka branchkan
Instruksi yang hanya ada pada AVR Branch
jika sama
Instruksi yang hanya ada pada AVR Branch
jika tidak sama
Instruksi yang hanya ada pada AVR Branch
jika nilai bawaan terset
Instruksi yang hanya ada pada AVR Branch
jika nilai bawaan kosong
Instruksi yang hanya ada pada AVR
Branch jika sama atau lebih tinggi
Instruksi yang hanya ada pada AVR Branch
jika lebih kecil
Instruksi yang hanya ada pada AVR Branch
jika kurang
Instruksi yang hanya ada pada AVR Branch
jika lebih/surpluss
Instruksi yang hanya ada pada AVR Branch
jika lebih baik atau sama
Instruksi yang hanya ada pada AVR Branch
jika lebih buruk
Instruksi yang hanya ada pada AVR Branch
jika setengah arah nilai bawaan terset
Instruksi yang hanya ada pada AVR
Branch jika setengah arah nilai bawaan
kosong
Instruksi yang hanya ada pada AVR Branch
jika arah T terset

46.

BRTC

47.

BRVS

48.

BRVC

49.

BRIE

50.

BRID

Instruksi yang hanya ada pada AVR Branch


jika arah T kosong
Instruksi yang hanya ada pada AVR Branch
jika overflow flag terset
Instruksi yang hanya ada pada AVR Branch
jika overflow flag kosong
Instruksi yang hanya ada pada AVR Branch
jika terdapat instrupsi memungkinkan
Instruksi yang hanya ada pada AVR Branch
jika instrupsi tidak memungkinkan

D. Operasi Boolean Variable Manipulation


No.

Instruksi MCS-51

1.

CLR C

2.

CLR bit

3.

SETB C

4.

SETB bit

5.

CPL C

6.

CPL bit

ANL C, bit

8.

ANL C/bit

9.

ORL C, bit

10.

ORL C/bit

11.

MOV C, bit

12.

MOV bit, C

13.

JC rel

14.

JNC rel

15.

JB bit, rel

16.

JNB bit, rel

Instruksi
AVR

Keterangan Fungsi
Instruksi hanya ada di MCS-51
Clear Carry
Instruksi hanya ada di MCS-51
Clear direct bit
Instruksi hanya ada di MCS-51
Set Carry
Instruksi hanya ada di MCS-51
Set direct bit
Instruksi hanya ada di MCS-51
Complement data to Carry
Instruksi hanya ada di MCS-51
Complement Direct bit
Instruksi hanya ada di MCS-51
AND direct bit to CARRY
Instruksi hanya ada di MCS-51
AND complement of direct bit to Carry
Instruksi hanya ada di MCS-51
OR direct bit to Carry
Instruksi hanya ada di MCS-51
OR complement of direct bit to Carry
Instruksi hanya ada di MCS-51
Move direct to Carry
Instruksi hanya ada di MCS-51
Move Carry to direct bit
Instruksi hanya ada di MCS-51
Jump if Carry is set
Instruksi hanya ada di MCS-51
Jump if Carry not set
Instruksi hanya ada di MCS-51
Jump if direct Bit is set
Instruksi hanya ada di MCS-51

17.

Jump if direct Bit is Not set


Instruksi hanya ada di MCS-51
Jump if direct Bit is set & clear bit

JBC bit, rel

E. Operasi Bit and Bit-Test Instructions

1.

Instruksi
AVR
LSL

2.

LSR

3.

ROL

4.

ROR

5.

ASR

6.

SWAP

7.

BSET

8.

BCLR

9.

SBI

10.

CBI

11.

BST

12.

BLD

13.

SEC

14.

CLC

15.

SEN

16.

CLN

17.

SEZ

18.

CLZ

19.

SEI

No.

Instruksi MCS-51

Keterangan Fungsi
Instruksi yang hanya ada pada AVR
Logical shift kiri
Instruksi yang hanya ada pada AVR
Logikal shift kanan
Instruksi yang hanya ada pada AVR
Memutar ke kiri sesuai nilai baawaan
Instruksi yang hanya ada pada AVR
Memutar ke kanan sesuai nilai baawaan
Instruksi yang hanya ada pada AVR
Nilai aritchmatic shift kanan
Instruksi yang hanya ada pada AVR
Menukar nibbles
Instruksi yang hanya ada pada AVR
Mengeset arah
Instruksi yang hanya ada pada AVR
Mengosongkan arah
Instruksi yang hanya ada pada AVR
Mengeset bit dalam masukan I/O
Instruksi yang hanya ada pada AVR
Mengosongkan bit dalam masukan I/O
Instruksi yang hanya ada pada AVR
Menyimpan bit dari masukan ke T
Instruksi yang hanya ada pada AVR
Membaca bit dari T
Instruksi yang hanya ada pada AVR
Mengeset nilai masukan
Instruksi yang hanya ada pada AVR
Membersihkan nilai masukan
Instruksi yang hanya ada pada AVR
Mengeset arah negative
Instruksi yang hanya ada pada AVR
Membersihkan arah negative
Instruksi yang hanya ada pada AVR
Mengeset zero flag
Instruksi yang hanya ada pada AVR
Membersihkan zero flag
Instruksi yang hanya ada pada AVR
Instrupsi global memungkinkan

20.

CLI

21.

SES

22.

CLS

23.

SEV

24.

CLV

25.

SET

26.

CLT

27.

SEH

28.

CLH

29.

NOP

30.

SLEEP

31.

WDR

Instruksi yang hanya ada pada AVR


Instrupsi global tidak memungkinkan
Instruksi yang hanya ada pada AVR
Mengeset tes tanda arah
Instruksi yang hanya ada pada AVR
Membersihkan tes tanda arah
Instruksi yang hanya ada pada AVR
Mengeset 2 complement yang melimpah
Instruksi yang hanya ada pada AVR
Mengosongkan 2 complement yang
melimpah
Instruksi yang hanya ada pada AVR
Mengeset T pada SREG
Instruksi yang hanya ada pada AVR
Mengosongkan T pada SREG
Instruksi yang hanya ada pada AVR
Set half carry flag in SREG
Instruksi yang hanya ada pada AVR
Clear half carry flag in SREG
Instruksi yang hanya ada pada AVR
Bukan operasi
Instruksi yang hanya ada pada AVR
Sleep
Instruksi yang hanya ada pada AVR
Watchdog reset

Anda mungkin juga menyukai