1.内部数据传送指令

1
2
3
4
5
6
7
MOV A,#data	;A<-data	00H~FFH
MOV Rn,#data ;Rn<-data Rn,n=0~7
MOV direct,#data ;direct<-data 00H~FFH
MOV @Ri,#data ;(Ri)<-data 00H~FFH
MOV DPTR,#data16 ;DPTR<-data16
MOV A,Rn ;A<-(Rn)
……

2.累加器与外部 RAM 之间的数据传送指令

(1)由 Ri 提供外部 RAM 的单元地址

1
2
MOVX A,@Ri	;A<-((Ri)) i=0,1	只能访问外部RAM 00H~FFH(低8位,高8位由P2口决定)
MOVX @Ri,A ;(Ri)<-A i=0,1

(2)由 DPTR 提供外部 RAM 地址单元

1
2
MOVX A,@DPTR	;A<-((DPTR))	可以访问外部	最常用
MOVX @DPTR,A ;(DPTR)<-A

3.程序存储器数据传送指令:只能读数据,传送是单向的

1
2
MOVC A,@A+DPTR	;A<-((A)+(DPTR))
MOVC A,@A+PC ;A<-((A)+(PC))

4.堆栈操作指令:堆栈是建立在内部 RAM中,通过堆栈指示器 SP进行的读写操作

1
2
PUSH direct	;SP<-(SP)+1,(SP)<-direct	压栈
POP direct ;direct<-((SP)),(SP)<-(SP)-1 出栈

5.数据交换指令

(1)字节交换指令

1
2
3
XCH A,Rn	;(A)<-->Rn,n=0~7
XCH A,direct ;(A)<-->(direct)
XCH A,@Ri ;(A)<-->((Ri)),i=0,1

(2)半字节交换

1
2
XCHD A,@Ri	;(A3~0)<-->((Ri)3~0)	用于十六进制数或BCD码的数位交换
SWAP A ;(A3~0)<-->(A7~4)