Instruction Set
C500 Family
Semiconductor Group
4-84
1998-04-01
Data Transfer
MOV
A,Rn
Move register to accumulator
1
1
MOV
A,direct
Move direct byte to accumulator
2
1
MOV
A,@Ri
Move indirect RAM to accumulator
1
1
MOV
A,#data
Move immediate data to accumulator
2
1
MOV
Rn,A
Move accumulator to register
1
1
MOV
Rn,direct
Move direct byte to register
2
2
MOV
Rn,#data
Move immediate data to register
2
1
MOV
direct,A
Move accumulator to direct byte
2
1
MOV
direct,Rn
Move register to direct byte
2
2
MOV
direct,direct
Move direct byte to direct byte
3
2
MOV
direct,@Ri
Move indirect RAM to direct byte
2
2
MOV
direct,#data
Move immediate data to direct byte
3
2
MOV
@Ri,A
Move accumulator to indirect RAM
1
1
MOV
@Ri,direct
Move direct byte to indirect RAM
2
2
MOV
@Ri, #data
Move immediate data to indirect RAM
2
1
MOV
DPTR, #data16
Load data pointer with a 16-bit constant
3
2
MOVC A,@A + DPTR
Move code byte relative to DPTR to accumulator
1
2
MOVC A,@A + PC
Move code byte relative to PC to accumulator
1
2
MOVX A,@Ri
Move external RAM (8-bit addr.) to A
1
2
MOVX A,@DPTR
Move external RAM (16-bit addr.) to A
1
2
MOVX @Ri,A
Move A to external RAM (8-bit addr.)
1
2
MOVX @DPTR,A
Move A to external RAM (16-bit addr.)
1
2
PUSH
direct
Push direct byte onto stack
2
2
POP
direct
Pop direct byte from stack
2
2
XCH
A,Rn
Exchange register with accumulator
1
1
XCH
A,direct
Exchange direct byte with accumulator
2
1
XCH
A,@Ri
Exchange indirect RAM with accumulator
1
1
XCHD A,@Ri
Exchange low-order nibble indir. RAM with A
1
1
1) MOV A,ACC is not a valid instruction
Table 4-3 :
Instruction Set Summary (contÕd)
Mnemonic
Description
Byte
Cycle