作者:平凡单片机
单片机指令(二)
- 数据传递类指令
( 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 )