dani-jazmi.blogspot.com

Rabu, 20 April 2011

Set Instruksi MCS-51

Operasi Aritmatika

Mnemonic
Deskripsi
Ukuran
Cycle
ADD A,Rn
Menambahkan register ke accumulator (ACC)
1
1
ADD A,direct
Menambahkan direct byte to ACC
2
1
ADD A,@Ri
Menambahkan indirect RAM ke ACC
1
1
ADD A,#data
Menamabhkan data ke ACC
2
1
ADDC A,Rn
Menambahkan register ke ACC dengan carry
1
1
ADDC A,direct
Menanbahkan direct byte ke ACC dengan carry
2
1
ADDC A,@Ri
Menambahkan indirect RAM ke ACC dengan carry
1
1
ADDC A,#data
Menambahkan data ke ACC dengan carry
2
1
SUBB A,Rn
Subtract register from ACC with borrow
1
1
SUBB A,direct
Subtract direct byte from ACC with borrow
2
1
SUBB A,@Ri
Subtract indirect RAM from ACC with borrow
1
1
SUBB A,#data
Subtract immediate data from ACC with borrow
2
1
INC A
Increment ACC
1
1
INC Rn
Increment register
1
1
INC direct
Increment direct byte
2
1
INC @Ri
Increment indirect RAM
1
1
INC DPTR
Increment data pointer
1
2
DEC A
Decrement ACC
1
1
DEC Rn
Decrement register
1
1
DEC direct
Decrement direct byte
2
1
DEC @Ri
Decrement indirect RAM
1
1
MUL AB
Mengalikan A dan B
1
4
Hasil: A<- low byte ; B-> high byte
DIV AB
Membagi A dengan B
1
4
Hasil: A<-Seluruh bagian ; B<- remainder
DA A
Mengubah ACC menjadi decimal
1
1



Operasi Logika

Mnemonic
Deskripsi
Ukuran
Cycle
ANL A,Rn
AND register to ACC
1
1
ANL A,direct
AND direct byte to ACC
2
1
ANL A,@Ri
AND indirect RAM to ACC
1
1
ANL A,#data
AND immediate data to ACC
2
1
ANL direct,#data
AND immediate data to direct byte
3
2
ORL A,Rn
OR register to ACC
1
1
ORL A,direct
OR direct byte to ACC
2
1
ORL A,@Ri
OR indirect RAM to ACC
1
1
ORL A,#data
OR immediate data to ACC
2
1
ORL direct,A
OR ACC to direct byte
2
1
ORL direct,#data
OR immediate data to direct byte
3
2
XRL A,Rn
Exclusive OR register to ACC
1
1
XRL A,direct
Exclusive OR direct byte to ACC
2
1
XRL A,@Ri
Exclusive OR indirect RAM to ACC
1
1
XRL A,#data
Exclusive OR immediate data to ACC
2
1
XRL direct,A
Exclusive OR ACC to direct byte
2
1
XRL direct,#data
XOR immediate data to direct byte
3
2
CLR A
Clear ACC (set all bits to zero)
1
1
CPL A
Compliment ACC
1
1
RL A
Rotate ACC left
1
1
RLC A
Rotate ACC left through carry
1
1
RR A
Rotate ACC right
1
1
RRC A
Rotate ACC right through carry
1
1
SWAP A
Swap nibbles within ACC
1
1

Transfer Data

Mnemonic
Description
Size
Cycle
MOV A,Rn
Memindahkan register ke ACC
1
1
MOV A,direct
Memindahkan direct byte ke ACC
2
1
MOV A,@Ri
Memindahkan indirect RAM ke ACC
1
1
MOV A,#data
Memindahkan data ke ACC
2
1
MOV Rn,A
Memindahkan ACC ke register
1
1
MOV Rn,direct
Memindahkan direct byte ke register
2
2
MOV Rn,#data
Memindahkan data ke register
2
1
MOV direct,A
Memindahkan ACC ke direct byte
2
1
MOV direct,Rn
Memindahkan register ke direct byte
2
2
MOV direct,direct
Memindahkan direct byte ke direct byte
3
2
MOV direct,@Ri
Memindahkan indirect RAM ke direct byte
2
2
MOV direct,#data
Memindahkan data ke direct byte
3
2
MOV @Ri,A
Memindahkan ACC ke indirect RAM
1
1
MOV @Ri,direct
Memindahkan direct byte ke indirect RAM
2
2
MOV @Ri,#data
Memindahkan data ke indirect RAM
2
1
MOV DPTR,#data16
Memindahkan 16bit data ke data pointer register
3
2
MOVC A,@A+DPTR
Memindahkan code byte relative ke DPTR to ACC
(16bit address)
1
2
MOVC A,@A+PC
Memindahkan code byte relative ke PC to ACC
(16bit address)
1
2
MOVX A,@Ri
Memindahkan external RAM ke ACC (8bit address)
1
2
MOVX A,@DPTR
Memindahkan external RAM ke ACC (16bit address)
1
2
MOVX @Ri,A
Memindahkan ACC ke external RAM (8bit address)
1
2
MOVX @DPTR,A
Memindahkan ACC ke external RAM (16bit address)
1
2
PUSH direct
Memasukkan direct byte ke dalam stack
2
2
POP direct
Mengambil direct byte dari stack
2
2
XCH A,Rn
Exchange register with ACC
1
1
XCH A,direct
Exchange direct byte with ACC
2
1
XCH A,@Ri
Exchange indirect RAM with ACC
1
1
XCHD A,@Ri
Exchange low order nibble of indirect RAM with
low
1
1
order nibble of ACC

Manipulasi Variabel Boolean

Mnemonic
Deskripsi
Ukuran
Cycle
CLR C
Clear Carry Flag
1
1
CLR bit
Clear direct bit
2
1
SETB C
Set carry flag
1
1
SETB bit
Set direct bit
2
1
CPL C
Compliment carry flag
1
1
CPL bit
Compliment direct bit
2
1
ANL C,bit
AND direct bit to carry flag
2
2
ANL C,/bit
AND compliment of direct bit to carry
2
2
ORL C,bit
AND direct bit to carry flag
2
2
ANL C,/bit
AND compliment of direct bit to carry
2
2
MOV C,bit
Move direct bit to carry flag
2
1
MOV bit,C
Move carry to direct bit
2
2
JC rel
Jump if carry is set
2
2
JNC rel
Jump if carry is not set
2
2
JB bit,rel
Jump if direct bit is set
3
2
JNB bit,rel
Jump if direct bit is not set
3
2
JBC bit,rel
Jump if direct bit is set & clear bit
3
2

Program Percabangan (Branching)

Mnemonic
Deskripsi
Ukuran
Cycle
ACALL addr11
Absolute subroutine call
2
2
LCALL addr16
Long subroutine call
3
2
RET
Return from subroutine
1
2
RETI
Return from Interrupt
1
2
AJMP addr11
Absolute jump
2
2
LJMP addr16
Long jump
3
2
SJMP rel
Short jump (relative address)
2
2
JMP @A+DPTR
Jump indirect relative to the DPTR
1
2
JZ rel
Jump relative if ACC is zero
2
2
JNZ rel
Jump relative if ACC is not zero
2
2
CJNE A,direct,rel
Compare direct byte to ACC and jump if not equal
3
2
CJNE A,#data,rel
Compare immediate byte to ACC and jump if not
equal
3
2
CJNE Rn,#data,rel
Compare immediate byte to register and jump if
not equal
3
2
CJNE @Ri,data,rel
Compare immediate byte to indirect and jump if
not equal
3
2
DJNZ Rn,rel
Decreament register and jump if not zero
2
2
DJNZ direct,rel
Decreament direct byte and jump if not zero
3
2

Tidak ada komentar:

Posting Komentar