21120114120030-tugas#1-mikroprosesor

21
A. Operasi ALU No . Instruksi MCS-51 Instruksi AVR Keterangan Fungsi 1. ADD ADD Menambahkan nilai register dengan akumulator 2. ADD A, Rn Add register to Accumulator 3. ADD A, direct Add direct byte to Accumulator 4. ADD A, @RI Add indirect RAM to Accumulator 5. ADD A, #data Add immediate data to Accumulator 6. ADDC ADC Menambahkan nilai register dengan akumulator dan nilai bawaan 7. ADDC A, Rn Add register to Accumulator with Carry 8. ADDC A, direct Add direct byte to Accumulator with Carry 9. ADDC A, @RI Add in direct RAM to Accumulator with Carry 10 . ADDC A, #data Add Immediate data to Acc with Carry 11 . ADIW Instruksi yang hanya ada pada AVR Add immediate to word 12 . SUBB SUB Melakukan pengurangan tanpa carry 13 . SUBB A, Rn Subtract Register From Acc with borrow 14 . SUBB A, direct Subtrect direct byte from Acc With borrow 15 . SUBB A, @RI Instruksi yang hanya ada pada MCS-51 Subfrectindiract RAM fromACC with borrow 16 SUBB A, Instruksi yang hanya ada

description

ddddddddddd

Transcript of 21120114120030-tugas#1-mikroprosesor

Page 1: 21120114120030-tugas#1-mikroprosesor

A. Operasi ALU

No. Instruksi MCS-51Instruksi

AVRKeterangan Fungsi

1. ADD ADD Menambahkan nilai register dengan akumulator

2. ADD A, Rn Add register to Accumulator3. ADD A, direct Add direct byte to Accumulator4. ADD A, @RI Add indirect RAM to Accumulator5. ADD A, #data Add immediate data to Accumulator6. ADDC ADC Menambahkan nilai register dengan

akumulator dan nilai bawaan7. ADDC A, Rn Add register to Accumulator with Carry8. ADDC A, direct Add direct byte to Accumulator with

Carry9. ADDC A, @RI Add in direct RAM to Accumulator with

Carry10. ADDC A, #data Add Immediate data to Acc

with Carry11. ADIW Instruksi yang hanya ada pada AVR

Add immediate to word12. SUBB SUB Melakukan pengurangan tanpa carry13. SUBB A, Rn Subtract Register From Acc with borrow14. SUBB A, direct Subtrect direct byte from Acc With

borrow15. SUBB A, @RI Instruksi yang hanya ada pada MCS-51

Subfrectindiract RAM fromACC with borrow

16. SUBB A, #data Instruksi yang hanya ada pada MCS-51 Subtract immediate date from Acc with

borrow17. SUBI Instruksi yang hanya ada pada AVR

Substract immediate18. SBC Instruksi yang hanya ada pada AVR

Substract with carry19. SBCI Instruksi yang hanya ada pada AVR

Substract immediate with carry20. SBIW Instruksi yang hanya ada pada AVR

Substract immediate with word21. INC INC Increment Accumulat22. INC Rn Instruksi hanya ada di MCS-51

Incrsmsnt registe23. INC direct Instruksi hanya ada di MCS-51

Page 2: 21120114120030-tugas#1-mikroprosesor

Increment direct byte24. INC @RI Instruksi hanya ada di MCS-51

Increment direct RAM25. INC DPTR Instruksi hanya ada di MCS-51

Instruksi yang hanya ada pada MCS-5126. DEC DEC Mengurangi isi akumulator dengan 1927. DEC Rn Instruksi hanya ada di MCS-51

Decrement Regiete28. DEC direct Instruksi hanya ada di MCS-51

Decrement direct byte29. DEC @RI Instruksi hanya ada di MCS-51

Decrement Indirect RAM30. MUL AB MUL MultiPiy unsigned31. MULS Instruksi yang hanya ada pada AVR

MultiPiy signed32. MULSU Instruksi yang hanya ada pada AVR

MultiPiy signed with unsigned33. FMUL Instruksi yang hanya ada pada AVR

Fractional MultiPiy unsigned34. FMULS Instruksi yang hanya ada pada AVR

Fractional MultiPiy signed35. FMULSU Instruksi yang hanya ada pada AVR

Fractional MultiPiy signed with unsigned36. DIV AB Instruksi hanya ada di MCS-51

Divide AbyB37. DA A Instruksi hanya ada di MCS-51

Decimel Adjuet Accumula38. ANL AND Fungsi logika AND39. ANDI Instruksi yang hanya ada pada AVR40. ANL A, Rn Instruksi hanya ada di MCS-51

AND Regieterto Accumulat41. ANL A, direct Instruksi hanya ada di MCS-51

AND diract byte to Accumulat42. ANL A, @RI Instruksi hanya ada di MCS-51

AND indirect RAM to Accumulator43. ANL A, #data Instruksi hanya ada di MCS-51

AND immediate data to Accumulator44. ANL direct, A Instruksi hanya ada di MCS-51

AND Accumulator todirect byte45. ANL direct, #data Instruksi hanya ada di MCS-51

AND immediate data todirect byte46. ORL OR Fungsi logika OR47. ORI Instruksi yang hanya ada pada AVR

Page 3: 21120114120030-tugas#1-mikroprosesor

Logika OR with immediate48. ORL A, Rn Instruksi hanya ada di MCS-51

OR register to Accumulator49. ORL A, direct Instruksi hanya ada di MCS-51

OR direct byte to Accumulator50. ORL A, @RI Instruksi hanya ada di MCS-51

OR indiract RAM to Accumulator51. ORL A, #data Instruksi hanya ada di MCS-51

OR immediate data to Accumulator52. ORL direct, A Instruksi hanya ada di MCS-51

OR Accumulator todirect byte53. ORL direct, #data Instruksi hanya ada di MCS-51

OR immediate detetodiract byte54. XRL EOR Exclusive-OR55. XRL A, Rn Instruksi hanya ada di MCS-51

Exclusive-Or register to Armmulator56. XRL A, direct Instruksi hanya ada di MCS-51

Exclusive-OR direct byte to Accumulator57. XRL A, @RI Instruksi hanya ada di MCS-51

Exclusive-OR indirect RAM to Accumulator

58. XRL A, #data Instruksi hanya ada di MCS-51Exclusive-OR immediate data to

Accumulator59. XRL direct, A Instruksi hanya ada di MCS-51

Excluaive-OR Accumulator to direct byte60. XRL direct, #data Instruksi hanya ada di MCS-51

Exclueive-OR immediate date to direct byte

61. CLR CLR Instruksi yang sama dengan fungsi yang berbeda.

Pada MCS-51, CLR untuk menghapus isi akumulator.

Pada AVR, CLR untuk mengapus register.

62. CPL COM/NEG Komplemen Akumulator Pada AVR, COM sebagai One’s

Complement dan NEG sebagai Two’s Complement

63. SER Instruksi yang hanya ada pada AVR Mengeset register

64. TST Instruksi yang hanya ada pada AVR Mengecek nilai 0 dan minus

Page 4: 21120114120030-tugas#1-mikroprosesor

65. SBR Instruksi yang hanya ada pada AVR Mengeset bit dalam register

66. CBR Instruksi yang hanya ada pada AVR Menghapus bit dalam register

67. RL Instruksi hanya ada di MCS-51Memutar akumulator ke kiri

68. RLC Instruksi hanya ada di MCS-51Memutar akumulator ke kiri dengan carry

69. RC Instruksi hanya ada di MCS-51Memutar akumulator ke kanan

70. RRC Instruksi hanya ada di MCS-51Memutar akumulator ke kanan dengan

carry71. SWAP Instruksi hanya ada di MCS-51

Swap nibbles within the Accumulator

B. Operasi Data Transfer

No. Instruksi MCS-51Instruksi

AVRKeterangan Fungsi

1. MOV MOV Instruksi yang sama dengan fungsi yang berbeda.

Pada MCS-51, MOV untuk memindahkan register ke akumulator.

Pada AVR, MOV untuk meng-copy register.

2. MOVW Copy register pair3. MOV A, Rn Instruksi hanya ada di MCS-51

Memindahkan register ke akumulator4. MOV A, direct Instruksi hanya ada di MCS-51

Memindahkan bit ke akumulator secara langsung

5. MOV A, @RI Instruksi hanya ada di MCS-51Memindahkan RAM ke akumulator secara

tidak langsung6. MOV A, #data Instruksi hanya ada di MCS-51

Memindahkan data ke akumulator dengan segera

7. MOV Rn, A Instruksi hanya ada di MCS-51Memindahkan akumulator ke register

8. MOV Rn, direct Instruksi hanya ada di MCS-51

Page 5: 21120114120030-tugas#1-mikroprosesor

Memindahkan bit ke register secara langsung

9. MOV Rn, #data Instruksi hanya ada di MCS-51Memindahkan data ke register dengan

segera10. MOV direct, A Instruksi hanya ada di MCS-51

Move Accumulator to direct byte11. MOV direct, Rn Instruksi hanya ada di MCS-51

Move register to direct byte12. MOV direct, direct Instruksi hanya ada di MCS-51

Move direct byte todiract13. MOV direct, #data Instruksi hanya ada di MCS-51

Move immediate data todirect byte14. MOV direct, @RI Instruksi hanya ada di MCS-51

Move indirect RAM to direct byte15. MOV @RI, A Instruksi hanya ada di MCS-51

Move Accumulator indirect RAM16. MOV @RI, direct Instruksi hanya ada di MCS-51

Move direct byte to indirect RAM17. MOV @RI, #data Instruksi hanya ada di MCS-51

Move immediate date to indirect RAM

18. MOV DPTR, #data16

Instruksi hanya ada di MCS-51Load Data Pointer with a 16 bit constant

19. MOVC A, @A+DPTR

Instruksi hanya ada di MCS-51MoveMe byte relative to DPTR to Acc

20. MOVC A, @A+PC

Instruksi hanya ada di MCS-51Move Code by terelative to PC to Acc

21. MOVX A, @RI Instruksi hanya ada di MCS-51MoveExternal RAM(8-biteddr) toAcc

22. MOVX A, @DPTR

Instruksi hanya ada di MCS-51Move External RAM(l&bitaddr) to Acc

23. MOVX @RI, A Instruksi hanya ada di MCS-51Move Acc to External RAM(8-bit addr)

24. MOVX @DPTR,A Instruksi hanya ada di MCS-51Move Acc to External RAM(lS-bitaddr)

25. PUSH PUSH Melakukan push register dalam stack26. POP POP Melakukan pop register dalam stack27. XCH A, Rn Instruksi hanya ada di MCS-51

Exchange register with Accumulator28. XCH A, direct Instruksi hanya ada di MCS-51

Exchange direct byte with Accumulator29. XCH A, @RI Instruksi hanya ada di MCS-51

Page 6: 21120114120030-tugas#1-mikroprosesor

Exchange indirect RAM with Accumulator

30. XCHD A, @RI Instruksi hanya ada di MCS-51Exchange low order Digit indirect RAM

with Acc31. LDI Instruksi yang hanya ada pada AVR

Load immediate Rd←K

32. LDS Instruksi yang hanya ada pada AVR Load direct from data space

Rd←(k)33. LD Instruksi yang hanya ada pada AVR

Load in directRd ← (X)

34. LD Instruksi yang hanya ada pada AVR Load in direct

Rd ← (X), X ← X +135. LD Instruksi yang hanya ada pada AVR

Load in directX ← X - 1, Rd ← (X)

36. LD Instruksi yang hanya ada pada AVR Load in direct

Rd ← (Y)37. LD Instruksi yang hanya ada pada AVR

Load in directRd ← (Y), Y ← Y +1

38. LD Instruksi yang hanya ada pada AVR Load in direct

Y ← Y - 1, Rd ← (Y)39. LDD Instruksi yang hanya ada pada AVR

Load in direct with displacementRd ← (Y + q)

40. LD Instruksi yang hanya ada pada AVR Load in direct

Rd ← (Z)41. LD Instruksi yang hanya ada pada AVR

Load in directRd ← (Z), Z ← Z+1

42. LD Instruksi yang hanya ada pada AVR Load in direct

Z ← Z- 1, Rd ← (Z)

43. LDD Instruksi yang hanya ada pada AVR

Page 7: 21120114120030-tugas#1-mikroprosesor

Load in direct displacementRd ← (Z + q)

44. STS Instruksi yang hanya ada pada AVR Store direct to data space

Rd ← (k)45. ST Instruksi yang hanya ada pada AVR

Store in direct(X) ← Rr

46. ST Instruksi yang hanya ada pada AVR Store in direct

(X) ← Rr, X← X+147. ST Instruksi yang hanya ada pada AVR

Store in directX← X - 1 , (X) ← Rr

48. ST Instruksi yang hanya ada pada AVR Store in direct

(Y) ← Rr49. ST Instruksi yang hanya ada pada AVR

Store in direct (Y) ← Rr, Y← Y+1

50. ST Instruksi yang hanya ada pada AVR Store in direct

Y← Y - 1 , (Y) ← Rr51. STD Instruksi yang hanya ada pada AVR

Load in direct with displacement (Y + q) ← Rr

52. ST Instruksi yang hanya ada pada AVR Store in direct

(Z) ← Rr53. ST Instruksi yang hanya ada pada AVR

Store in direct (Z ← Rr, Z← Z+1

54. ST Instruksi yang hanya ada pada AVR Store in direct

Z← Z - 1 , (Z) ← Rr55. STD Instruksi yang hanya ada pada AVR

Store in direct with displacement (Z + q) ← Rr

56. LPM Instruksi yang hanya ada pada AVR Load program memory

R0 ← (Z)57. LPM Instruksi yang hanya ada pada AVR

Load program memory

Page 8: 21120114120030-tugas#1-mikroprosesor

Rd ← (Z)

58. LPM Instruksi yang hanya ada pada AVR Load program memory

Rd ← (Z), Z← Z+159. ELPM Instruksi yang hanya ada pada AVR

Extended Load program memoryR0 ← (RAMPZ:Z)

60. ELPM Instruksi yang hanya ada pada AVR Extended Load program memory

Rd ← (RAMPZ:Z)61. ELPM Instruksi yang hanya ada pada AVR

Extended Load program memoryRd ← (RAMPZ:Z), Z← Z+1

62. SPM Instruksi yang hanya ada pada AVR Extended Load program memory

(Z) ← R1:R063. ESPM Instruksi yang hanya ada pada AVR

Extended Load program memory (RAMPZ:Z) ← R1:R0

64. IN Instruksi yang hanya ada pada AVR Extended Load program memory

Rd ← I/O(A)65. OUT Instruksi yang hanya ada pada AVR

Extended Load program memoryI/O(A) ← Rr

C. Operasi Program Branching

No. Instruksi MCS-51Instruksi

AVRKeterangan Fungsi

1. ACALL CALL Mutlak memanggil sub routine2. LCALL LCALL Memanggil sub routine secara tidak

langsung3. ICALL Memanggil sub routine secara tidak

langsung4. EICALL Instruksi yang hanya ada pada AVR5. RET RET Mengembalikan subroutine6. RETI RETI Mengembalikan subroutine secara tidak

langsung7. AJMP JMP Mutlak melewati subroutine8. LJMP Instruksi yang hanya ada pada MCS-51

Melewati perintah secara tidak langsung

Page 9: 21120114120030-tugas#1-mikroprosesor

9. SJMP Melewati satu perintah menuju ke beberapa perintah berikutnya sesuai

masukan konstantanya10. JMP @A + DPTR Instruksi yang hanya ada pada MCS-51

Melewati perintah11. RJMP Melewati satu perintah menuju ke

beberapa perintah berikutnya sesuai masukan konstantanya

12. IJMP Instruksi yang hanya ada pada AVR Melewati perintah secara tidak langsung

13. EIJMP Instruksi yang hanya ada pada AVR Extended indirect jump to

14. JZ Melewati jika akumulator nol15. JNZ Melewati jika akumulator tidak nol16. CJNE A, direct, rel Instruksi yang hanya ada pada MCS-51

Membandingkan direct byte ke akumulator dan melompati jika tidak sama

17. CJNE A, #data, rel Instruksi yang hanya ada pada MCS-51Membandingkan immediate ke akumulator

dan melompati jika tidak sama18. CJNE Rn, #data,

relInstruksi yang hanya ada pada MCS-51

Membandingkan immediate ke register dan melompat jika tidak sama

19. CJNE @RI, #data, rel

Instruksi yang hanya ada pada MCS-51Membandingkan immediate ke indirect

dan melompat jika tidak sama20. DJNZ Rn, rel Instruksi yang hanya ada pada MCS-51

Melakukan pengurangan register dan jump apabila tidak 0

21. DJNZ direct, rel Instruksi yang hanya ada pada MCS-51Melakukan pengurangan bit dan jump

apabila tidak 022. NOP Instruksi hanya ada di MCS-51

Bukan operasi23. CP Instruksi yang hanya ada pada AVR

Membandingkan akumulator dengan register

24. CPSE Instruksi yang hanya ada pada AVR Membandingkan akumulator dengan

register, dan akan dilewati jika nilai sama25. CPI Instruksi yang hanya ada pada AVR

membandingkan akumulator secara langsung

Page 10: 21120114120030-tugas#1-mikroprosesor

26. CPC Instruksi yang hanya ada pada AVR membandingkan akumulator dengan

register dengan nilai bawaan27. SBRC Instruksi yang hanya ada pada AVR jika

nilai bit dalam register kosong maka lewati perintah

28. SBRS Instruksi yang hanya ada pada AVR29. SBIS Instruksi yang hanya ada pada AVR jika

nilai bit dalam I/O satu maka lewati perintah

30. SBIC Instruksi yang hanya ada pada AVR jika nilai bit dalam I/O kosong maka

lewati perintah31. BRBS Instruksi yang hanya ada pada AVR

jika status arahnya terset maka branchkan32. BRBC Instruksi yang hanya ada pada AVR

jika status arahnya kosong maka branchkan

33. BREQ Instruksi yang hanya ada pada AVR Branch jika sama

34. BRNE Instruksi yang hanya ada pada AVR Branch jika tidak sama

35. BRCS Instruksi yang hanya ada pada AVR Branch jika nilai bawaan terset

36. BRCC Instruksi yang hanya ada pada AVR Branch jika nilai bawaan kosong

37. BRSH Instruksi yang hanya ada pada AVRBranch jika sama atau lebih tinggi

38. BRLO Instruksi yang hanya ada pada AVR Branch jika lebih kecil

39. BRMI Instruksi yang hanya ada pada AVR Branch jika kurang

40 BRPL Instruksi yang hanya ada pada AVR Branch jika lebih/surpluss

41. BRGE Instruksi yang hanya ada pada AVR Branch jika lebih baik atau sama

42. BRLT Instruksi yang hanya ada pada AVR Branch jika lebih buruk

43. BRHS Instruksi yang hanya ada pada AVR Branch jika setengah arah nilai bawaan

terset44. BRHC Instruksi yang hanya ada pada AVR

Branch jika setengah arah nilai bawaan

Page 11: 21120114120030-tugas#1-mikroprosesor

kosong45. BRTS Instruksi yang hanya ada pada AVR

Branch jika arah T terset46. BRTC Instruksi yang hanya ada pada AVR

Branch jika arah T kosong47. BRVS Instruksi yang hanya ada pada AVR

Branch jika overflow flag terset48. BRVC Instruksi yang hanya ada pada AVR

Branch jika overflow flag kosong49. BRIE Instruksi yang hanya ada pada AVR

Branch jika terdapat instrupsi memungkinkan

50. BRID Instruksi yang hanya ada pada AVR Branch jika instrupsi tidak memungkinkan

D. Operasi Boolean Variable Manipulation

No. Instruksi MCS-51Instruksi

AVRKeterangan Fungsi

1. CLR C Instruksi hanya ada di MCS-51Clear Carry

2. CLR bit Instruksi hanya ada di MCS-51Clear direct bit

3. SETB C Instruksi hanya ada di MCS-51Set Carry

4. SETB bit Instruksi hanya ada di MCS-51Set direct bit

5. CPL C Instruksi hanya ada di MCS-51Complement data to Carry

6. CPL bit Instruksi hanya ada di MCS-51Complement Direct bit

7 ANL C, bit Instruksi hanya ada di MCS-51AND direct bit to CARRY

8. ANL C/bit Instruksi hanya ada di MCS-51AND complement of direct bit to Carry

9. ORL C, bit Instruksi hanya ada di MCS-51OR direct bit to Carry

10. ORL C/bit Instruksi hanya ada di MCS-51OR complement of direct bit to Carry

11. MOV C, bit Instruksi hanya ada di MCS-51Move direct to Carry

12. MOV bit, C Instruksi hanya ada di MCS-51

Page 12: 21120114120030-tugas#1-mikroprosesor

Move Carry to direct bit13. JC rel Instruksi hanya ada di MCS-51

Jump if Carry is set

14. JNC rel Instruksi hanya ada di MCS-51Jump if Carry not set

15. JB bit, rel Instruksi hanya ada di MCS-51Jump if direct Bit is set

16. JNB bit, rel Instruksi hanya ada di MCS-51Jump if direct Bit is Not set

17. JBC bit, rel Instruksi hanya ada di MCS-51Jump if direct Bit is set & clear bit

E. Operasi Bit and Bit-Test Instructions

No. Instruksi MCS-51Instruksi

AVRKeterangan Fungsi

1. LSL Instruksi yang hanya ada pada AVR Logical shift kiri

2. LSR Instruksi yang hanya ada pada AVR Logikal shift kanan

3. ROL Instruksi yang hanya ada pada AVR Memutar ke kiri sesuai nilai baawaan

4. ROR Instruksi yang hanya ada pada AVR Memutar ke kanan sesuai nilai baawaan

5. ASR Instruksi yang hanya ada pada AVR Nilai aritchmatic shift kanan

6. SWAP Instruksi yang hanya ada pada AVR Menukar nibbles

7. BSET Instruksi yang hanya ada pada AVR Mengeset arah

8. BCLR Instruksi yang hanya ada pada AVR Mengosongkan arah

9. SBI Instruksi yang hanya ada pada AVR Mengeset bit dalam masukan I/O

10. CBI Instruksi yang hanya ada pada AVR Mengosongkan bit dalam masukan I/O

11. BST Instruksi yang hanya ada pada AVR Menyimpan bit dari masukan ke T

12. BLD Instruksi yang hanya ada pada AVR Membaca bit dari T

13. SEC Instruksi yang hanya ada pada AVR Mengeset nilai masukan

Page 13: 21120114120030-tugas#1-mikroprosesor

14. CLC Instruksi yang hanya ada pada AVR Membersihkan nilai masukan

15. SEN Instruksi yang hanya ada pada AVR Mengeset arah negative

16. CLN Instruksi yang hanya ada pada AVR Membersihkan arah negative

17. SEZ Instruksi yang hanya ada pada AVR Mengeset zero flag

18. CLZ Instruksi yang hanya ada pada AVR Membersihkan zero flag

19. SEI Instruksi yang hanya ada pada AVR Instrupsi global memungkinkan

20. CLI Instruksi yang hanya ada pada AVR Instrupsi global tidak memungkinkan

21. SES Instruksi yang hanya ada pada AVR Mengeset tes tanda arah

22. CLS Instruksi yang hanya ada pada AVR Membersihkan tes tanda arah

23. SEV Instruksi yang hanya ada pada AVR Mengeset 2 complement yang melimpah

24. CLV Instruksi yang hanya ada pada AVR Mengosongkan 2 complement yang

melimpah25. SET Instruksi yang hanya ada pada AVR

Mengeset T pada SREG26. CLT Instruksi yang hanya ada pada AVR

Mengosongkan T pada SREG27. SEH Instruksi yang hanya ada pada AVR

Set half carry flag in SREG28. CLH Instruksi yang hanya ada pada AVR

Clear half carry flag in SREG29. NOP Instruksi yang hanya ada pada AVR

Bukan operasi30. SLEEP Instruksi yang hanya ada pada AVR

Sleep31. WDR Instruksi yang hanya ada pada AVR

Watchdog reset