单片机/MCU论坛
直播中

尚文清

7年用户 1624经验值
私信 关注
[文章]

单片机教程(9)数据传递类指令

1.单片机数据传递类指令
(1)以直接地址为目的操作数的指令
1.png
(2)以间接地址为目的操作数的指令
2.png

(3)十六位数的传递指令
MOV DPTR#data16
8051是一种8位机,这是唯一的一条16位立即数传递指令,其功能是将一个16位的立即数送入DPTR中去。其中高8位送入DPH,低8位送入DPL。例:MOV DPTR#1234H,则执行完了之后DPH中的值为12HDPL中的值为34H。反之,如果我们分别向DPHDPL送数,则结果也一样。如有下面两条指令:MOV DPH#35HMOV DPL#12H。则就相当于执行了MOV DPTR#3512H


    数据传递类指令综合练习:
  • 给出每条指令执行后的结果
  • 上机练习:
3.png

说明:用括号括起来代表内容,如(23H)则代表内部RAM23H单元中的值,(A)则代表累加器A单元中的值。

1.进入DOS状态,进入WAVE所在的目录,例D:WAVE2.

2.键入MCS51,出现如下画面
4.gif

<单片机数据传递指令>图1

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

图2
5.gif

图3
6.gif

4.在空白处将上面的程序输入。见图4。用ALT+A汇编通过。用F8即可单步执行,在执行过程中注意观察屏幕左边的工作寄存器及A累加器中的值的变化。
7.gif
图4

5.内存中值的变化在此是看不到的,可以用如下方法观察(看图5):将鼠标移到DATA,双击,则光标进入此行,此时可以键盘上的上下光标键上下翻动来观察内存值的变化。本行的最前面DATA后面的数据代表的是“一段”的开始地址,如现在为20H,再看屏幕的最上方,数字从0F,显示两者相加就等于真正的地址值,如现在图上所示的内存20H21H22H23H中的值分别是FBH 0EHE8H30H

8.gif
图5

6.当
运行完程序后,即进入它的反汇编区,不是我们想要的东西。为了再从头开始,可以用CTRL+F2功能键复位PC值。注意此时不会看到原来的窗口,为看到原来的窗口,请用ALT+4ALT+5等来切换。当然以上操作也可以菜单进行。CTRL+F2是程序复位,用RUN菜单。窗口用WINDOWS菜单。


回帖(3)

王栋春

2018-6-13 13:11:23
讲的非常不错
举报

lzhiaohiua

2018-6-17 10:44:59
谢谢楼主的分享
举报

CHNlyt

2018-6-26 21:43:14
感谢楼主分享。。。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分