作者:平凡单片机
单片机指令(二) 
- 数据传递类指令 
 
( 3 )以直接地址为目的操作数的指令 
MOV direct,A 例: MOV 20H,A 
MOV direct,Rn MOV 20H,R1 
MOV direct1,direct2 MOV 20H,30H 
MOV direct,@Ri MOV 20H,@R1 
MOV direct,#data MOV 20H,#34H 
( 4 )以间接地址为目的操作数的指令 
MOV @Ri,A 例: MOV @R0,A 
MOV @Ri,direct MOV @R1,20H 
MOV @Ri,#data MOV @R0,#34H 
( 5 )十六位数的传递指令 
MOV DPTR , #data16 
8051 是一种 8 位机,这是唯一的一条 16 位立即数传递指令,其功能是将一个 16 位的立即数送入 DPTR 中去。其中高 8 位送入 DPH ,低 8 位送入 DPL 。例: MOV DPTR , #1234H ,则执行完了之后 DPH 中的值为 12H , DPL 中的值为 34H 。反之,如果我们分别向 DPH , DPL 送数,则结果也一样。如有下面两条指令: MOV DPH , #35H , MOV DPL , #12H 。则就相当于执行了 MOV DPTR , #3512H 。 
综合练习: 
- 给出每条指令执行后的结果 
| 
 MOV 23H,#30H  
MOV 12H,#34H  
MOV R0,#23H  
MOV R7,#22H  
MOV R1,12H  
MOV A,@R0  
MOV 34H,@R1   | 
 (23h)=30h  
(12h)=34h  
(R0)=23H  
(R7)=22H  
(R1)=12H  
(A)=30H  
(34H)=34H   | 
 MOV 45H,34H  
MOV DPTR,#6712H  
MOV 12H,DPH  
MOV R0,DPL  
MOV A,@R0   | 
 (45H)=34H  
(DPTR)=6712H  
(12H)=67H  
(R0)=12H  
(A)=67H   | 
说明:用括号括起来代表内容,如( 23H )则代表内部 RAM23H 单元中的值,( A )则代表累加器 A 单元中的值。 
 - 上机练习: 
 
- 进入 DOS 状态,进入 WAVE 所在的目录,例 D:WAVE 
 - 键入 MCS51 ,出现如下画面 

 
       3. 按 File->Open ,出现对话框后,在 Name 处输入一个文件名(见图 2 ),如果是下面列表中已存在的,则打开这个文件,如果不存在这个文件,则新建一个文件(见图 3 )