21120114120030-tugas#1-mikroprosesor
-
Upload
wennysitumorang -
Category
Documents
-
view
212 -
download
0
description
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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
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