你的位置:电子园51单片机学习网 >> 经典教程>> 详细内容 在线投稿

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

发布: 2009-4-04 22:26 |  作者: hnrain |   查看: 497次

  1. 单片机数据传递类指令 电子园51单片机学习网;[pMHc@

    电子园51单片机学习网 |;_*y)U#z(BU'n

3)以直接地址为目的操作数的指令电子园51单片机学习网nf`V I~

MOV direct,A 例: MOV 20H,A电子园51单片机学习网 ^/B k^5H p$h

MOV direct,Rn MOV 20H,R1电子园51单片机学习网)zxI qe o'~!LN

MOV direct1,direct2 MOV 20H,30H

5d'wb9[l)E0

MOV direct,@Ri MOV 20H,@R1电子园51单片机学习网En`EJ;F5u xX

MOV direct,#data MOV 20H,#34H

~X.N+^L5S-k0

4)以间接地址为目的操作数的指令电子园51单片机学习网cUNzn0z*|

MOV @Ri,A 例:MOV @R0,A

8]S(i7F6gDRN0

MOV @Ri,direct MOV @R1,20H电子园51单片机学习网p kzz0| h"k@

MOV @Ri,#data MOV @R0,#34H电子园51单片机学习网ws}"ih

5)十六位数的传递指令

9Nl ^\2qOZ0

MOV DPTR#data16电子园51单片机学习网{!E"|#P nE9H$e

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

数据传递类指令综合练习:

6Bq&f!I C0

    电子园51单片机学习网5XOx/BQ[l

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

    WPLeq\i6ueP|0

    b9O-F1_H^#V U0
  2. 上机练习: 电子园51单片机学习网N%pzwn ?/]k)S'G

    电子园51单片机学习网1p3oY}t!l1f'duM

    MOV 23H,#30H电子园51单片机学习网&c$L,`M-sMO

    MOV 12H,#34H

    4S-s0o$I[%v&i*m8Q0

    MOV R0,#23H

    ,WP%Y9XT^ i0

    MOV R7,#22H

    9\:z+wTRP0

    MOV R1,12H

    onp2k&D q7YDu\b0

    MOV A,@R0

    0ZMCYV!s;o"`!j&Q0

    MOV 34H,@R1

    G9l3jYM`0

    (23h)=30h

    8b F0UE_+?t R-bQ8Rn0

    (12h)=34h电子园51单片机学习网!L'e.R(j;K J;R7F@J

    (R0)=23H电子园51单片机学习网&[&}G,C p'@\

    (R7)=22H

    e U&y n;QF5z0

    (R1)=12H电子园51单片机学习网6^Y/W'vS8Z4?Q

    (A)=30H

    %Jg`\(reus0

    (34H)=34H

    i9a$L1l\.kq0

    MOV 45H,34H

    -E:z9c mW"`6`0

    MOV DPTR,#6712H电子园51单片机学习网y"ZV;s;Q

    MOV 12H,DPH

    )B"?j6d%[ a0

    MOV R0,DPL

    YrN:y8`%KDm0

    MOV A,@R0电子园51单片机学习网!}w$_pmD*fw#r

    (45H)=34H

    )bV(yUvVf;I0

    (DPTR)=6712H

    Qb7]-C)ZkAnn;@1K0

    (12H)=67H电子园51单片机学习网??[J_6L#J

    (R0)=12H电子园51单片机学习网)S;\2Ivn| bA

    (A)=67H

    V5M:X8a:Qw0

    说明:用括号括起来代表内容,如(23H)则代表内部RAM23H单元中的值,(A)则代表累加器A单元中的值。电子园51单片机学习网cgS hH

    电子园51单片机学习网3rh lP.a_

    电子园51单片机学习网 ~ D0m!]QnDJ_

  1. 进入DOS状态,进入WAVE所在的目录,例D:\WAVE 电子园51单片机学习网j7e(cV@;E;}N

    电子园51单片机学习网U,Mms }$j8b

    电子园51单片机学习网%c n2N yo,r8RD

  2. 键入MCS51,出现如下画面 电子园51单片机学习网7Z3oW${h4C*l

    (Kr gq4Q@]}0

    点此在新窗口浏览图片<单片机数据传递指令>图1

    Dq6rv s e4W?0

    B!aw*N*L-L7@Sr0
  3. File->Open,出现对话框后,在Name处输入一个文件名(见图2),如果是下面列表中已存在的,则打开这个文件,如果不存在这个文件,则新建一个文件(见图3 电子园51单片机学习网#N!^7Z'P!wy)G.S

    电子园51单片机学习网wzW0S@;N/iH I s

    点此在新窗口浏览图片电子园51单片机学习网7W1j0A%G-^t)~

    图2点此在新窗口浏览图片电子园51单片机学习网"o0zx:a+N]

    :y,q5s0l"K{2XQ0
  4. 在空白处将上面的程序输入。见图4。用ALT+A汇编通过。用F8即可单步执行,在执行过程中注意观察屏幕左边的工作寄存器及A累加器中的值的变化。 电子园51单片机学习网y&Ub(NH:s

    电子园51单片机学习网 u9r M ik?u [L&Y

    点此在新窗口浏览图片图4电子园51单片机学习网&A#@?cc `ku7aM(_

    YkNq A4uES0
电子园51单片机学习网F'Dt:n+f@^ w j

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

电子园51单片机学习网 mGQ)|C1x

QK pE-r wY]y(X0

L:Jx7ny)Ok0 电子园51单片机学习网#X'v8@:IO$n(b VP

点此在新窗口浏览图片图5

6y)@iq9j!l2f0

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

*MQ-f9Ds so:Dw~0 电子园51单片机学习网4O|7Pe:r&{^

电子园51单片机学习网 Y&e+r/?R R#b

打印 | 收藏此页 |  推荐给好友 | 举报
上一篇 下一篇
xinlong (2010-1-14 13:01:00)
评5分
karsen (2009-10-10 11:47:15)
评5分
cxykj60 (2009-7-29 10:57:24)
评5分
三欲蜗牛 (2009-7-19 10:29:44)
评5分
 

评分:0

发表评论
查看全部回复【已有4位网友发表了看法】

单片机开发板推荐

在线客服
在线客服系统