(玩电子) 电子技术学习与研究
当前位置单片机教程网 >> 基础教程 >> 浏览文章

9课:单片机数据传递类指令

作者:佚名   来源:本站原创   点击数:x  更新时间2007年08月16日   字体
  1. 单片机数据传递类指令

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位送入DPH8位送入DPLMOV DPTR#1234H则执行完了之后DPH中的值为12HDPL中的值为34H反之如果我们直向DPHDPL送数则结果也一样如有下面教指令MOV DPH#35HMOV DPL#12H则就相当于执行了MOV DPTR#3512H

数据传递类指令综合练习

  1. 给出每条指令执行后的结果

  2. 上机练习

    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单元中的值

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

  2. 键入MCS51出现如下画面

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

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

    图2

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

    图4

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

    图5

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

此次大家就用用熟这个软件吧说实话我并不很不它操作起来不方便但给我的机器只能上这个话法下次再给网友单独介绍一个好一点的吧现在最好的是keil 这个软件本站有详细的教程请看    keil教程  单片机c语言教程

发表评论告诉好友收藏此文关闭窗口

文章评论

һ֮Ƶ