📄 dpjjx11.htm
字号:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<META NAME="Generator" CONTENT="Microsoft Word 97">
<TITLE>单片机指令(二)</TITLE>
<META NAME="Template" CONTENT="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
</HEAD>
<BODY LINK="#0000ff" VLINK="#800080" background="../back.jpg">
<FONT FACE="宋体" LANG="ZH-CN">
<P ALIGN="JUSTIFY">单片机指令(二)</P>
<OL>
<P ALIGN="JUSTIFY"><LI>数据传递类指令</LI><p></P></OL>
</FONT><P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN">(</font><FONT FACE="System" LANG="ZH-CN">3</FONT><FONT FACE="宋体" LANG="ZH-CN">)以直接地址为目的操作数的指令</font></P>
<P ALIGN="JUSTIFY"><FONT FACE="System" LANG="ZH-CN">MOV	direct,A</font><FONT FACE="宋体" LANG="ZH-CN">	</FONT><FONT FACE="System" LANG="ZH-CN"> </FONT><FONT FACE="宋体" LANG="ZH-CN">例:</FONT> <FONT FACE="System" LANG="ZH-CN">MOV 20H,A</font></P><FONT FACE="System" LANG="ZH-CN">
<P ALIGN="JUSTIFY">MOV	direct,Rn MOV 20H,R1</P>
<P ALIGN="JUSTIFY">MOV	direct1,direct2 MOV 20H,30H</P>
<P ALIGN="JUSTIFY">MOV direct,@Ri MOV 20H,@R1</P>
<P ALIGN="JUSTIFY">MOV	direct,#data MOV 20H,#34H</P>
</FONT><P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN">(</font><FONT FACE="System" LANG="ZH-CN">4</FONT><FONT FACE="宋体" LANG="ZH-CN">)以间接地址为目的操作数的指令</font></P>
<P ALIGN="JUSTIFY"><FONT FACE="System" LANG="ZH-CN">MOV @Ri,A </font><FONT FACE="宋体" LANG="ZH-CN">例:</FONT><FONT FACE="System" LANG="ZH-CN">MOV @R0,A</font></P><FONT FACE="System" LANG="ZH-CN">
<P ALIGN="JUSTIFY">MOV @Ri,direct MOV @R1,20H</P>
<P ALIGN="JUSTIFY">MOV @Ri,#data MOV @R0,#34H</P>
</FONT><P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN">(</font><FONT FACE="System" LANG="ZH-CN">5</FONT><FONT FACE="宋体" LANG="ZH-CN">)十六位数的传递指令</font></P>
<P ALIGN="JUSTIFY"><FONT FACE="System" LANG="ZH-CN">MOV DPTR</font><FONT FACE="宋体" LANG="ZH-CN">,</FONT><FONT FACE="System" LANG="ZH-CN">#data16</font></P><P ALIGN="JUSTIFY">
<FONT FACE="System" LANG="ZH-CN">8051</font><FONT FACE="宋体" LANG="ZH-CN">是一种</FONT><FONT FACE="System" LANG="ZH-CN">8</FONT><FONT FACE="宋体" LANG="ZH-CN">位机,这是唯一的一条</FONT><FONT FACE="System" LANG="ZH-CN">16</FONT><FONT FACE="宋体" LANG="ZH-CN">位立即数传递指令,其功能是将一个</FONT><FONT FACE="System" LANG="ZH-CN">16</FONT><FONT FACE="宋体" LANG="ZH-CN">位的立即数送入</FONT><FONT FACE="System" LANG="ZH-CN">DPTR</FONT><FONT FACE="宋体" LANG="ZH-CN">中去。其中高</FONT><FONT FACE="System" LANG="ZH-CN">8</FONT><FONT FACE="宋体" LANG="ZH-CN">位送入</FONT><FONT FACE="System" LANG="ZH-CN">DPH</FONT><FONT FACE="宋体" LANG="ZH-CN">,低</FONT><FONT FACE="System" LANG="ZH-CN">8</FONT><FONT FACE="宋体" LANG="ZH-CN">位送入</FONT><FONT FACE="System" LANG="ZH-CN">DPL</FONT><FONT FACE="宋体" LANG="ZH-CN">。例:</FONT><FONT FACE="System" LANG="ZH-CN">MOV DPTR</FONT><FONT FACE="宋体" LANG="ZH-CN">,</FONT><FONT FACE="System" LANG="ZH-CN">#1234H</FONT><FONT FACE="宋体" LANG="ZH-CN">,则执行完了之后</FONT><FONT FACE="System" LANG="ZH-CN">DPH</FONT><FONT FACE="宋体" LANG="ZH-CN">中的值为</FONT><FONT FACE="System" LANG="ZH-CN">12H</FONT><FONT FACE="宋体" LANG="ZH-CN">,</FONT><FONT FACE="System" LANG="ZH-CN">DPL</FONT><FONT FACE="宋体" LANG="ZH-CN">中的值为</FONT><FONT FACE="System" LANG="ZH-CN">34H</FONT><FONT FACE="宋体" LANG="ZH-CN">。反之,如果我们分别向</FONT><FONT FACE="System" LANG="ZH-CN">DPH</FONT><FONT FACE="宋体" LANG="ZH-CN">,</FONT><FONT FACE="System" LANG="ZH-CN">DPL</FONT><FONT FACE="宋体" LANG="ZH-CN">送数,则结果也一样。如有下面两条指令:</FONT><FONT FACE="System" LANG="ZH-CN">MOV DPH</FONT><FONT FACE="宋体" LANG="ZH-CN">,</FONT><FONT FACE="System" LANG="ZH-CN">#35H</FONT><FONT FACE="宋体" LANG="ZH-CN">,</FONT><FONT FACE="System" LANG="ZH-CN">MOV DPL</FONT><FONT FACE="宋体" LANG="ZH-CN">,</FONT><FONT FACE="System" LANG="ZH-CN">#12H</FONT><FONT FACE="宋体" LANG="ZH-CN">。则就相当于执行了</FONT><FONT FACE="System" LANG="ZH-CN">MOV DPTR</FONT><FONT FACE="宋体" LANG="ZH-CN">,</FONT><FONT FACE="System" LANG="ZH-CN">#3512H</FONT><FONT FACE="宋体" LANG="ZH-CN">。</font></P><FONT FACE="宋体" LANG="ZH-CN">
<P ALIGN="JUSTIFY">综合练习:</P>
</FONT><OL><FONT FACE="宋体" LANG="ZH-CN">
<P ALIGN="JUSTIFY"><LI>给出每条指令执行后的结果</LI><p></P></font>
<TABLE BORDER CELLSPACING=1 CELLPADDING=7 WIDTH=607>
<TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=113>
<FONT FACE="System" LANG="ZH-CN"><P ALIGN="JUSTIFY">MOV 23H,#30H</P><DIR>
<DIR>
<P ALIGN="JUSTIFY">MOV 12H,#34H</P>
<P ALIGN="JUSTIFY">MOV R0,#23H</P>
<P ALIGN="JUSTIFY">MOV R7,#22H</P>
<P ALIGN="JUSTIFY">MOV R1,12H</P>
<P ALIGN="JUSTIFY">MOV A,@R0</P>
<P ALIGN="JUSTIFY">MOV 34H,@R1</DIR>
</DIR>
</FONT></TD>
<TD WIDTH="22%" VALIGN="TOP" HEIGHT=113>
<FONT FACE="System" LANG="ZH-CN"><P ALIGN="JUSTIFY">(23h)=30h</P><DIR>
<DIR>
<P ALIGN="JUSTIFY">(12h)=34h</P>
<P ALIGN="JUSTIFY">(R0)=23H</P>
<P ALIGN="JUSTIFY">(R7)=22H</P>
<P ALIGN="JUSTIFY">(R1)=12H</P>
<P ALIGN="JUSTIFY">(A)=30H</P>
<P ALIGN="JUSTIFY">(34H)=34H</DIR>
</DIR>
</FONT></TD>
<TD WIDTH="28%" VALIGN="TOP" HEIGHT=113>
<FONT FACE="System" LANG="ZH-CN"><P ALIGN="JUSTIFY">MOV 45H,34H</P><DIR>
<DIR>
<P ALIGN="JUSTIFY">MOV DPTR,#6712H</P>
<P ALIGN="JUSTIFY">MOV 12H,DPH</P>
<P ALIGN="JUSTIFY">MOV R0,DPL</P>
<P ALIGN="JUSTIFY">MOV A,@R0</DIR>
</DIR>
</FONT></TD>
<TD WIDTH="22%" VALIGN="TOP" HEIGHT=113>
<FONT FACE="System" LANG="ZH-CN"><P ALIGN="JUSTIFY">(45H)=34H</P><DIR>
<DIR>
<P ALIGN="JUSTIFY">(DPTR)=6712H</P>
<P ALIGN="JUSTIFY">(12H)=67H</P>
<P ALIGN="JUSTIFY">(R0)=12H</P>
<P ALIGN="JUSTIFY">(A)=67H</DIR>
</DIR>
</FONT></TD>
</TR>
</TABLE>
<P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN">说明:用括号括起来代表内容,如(</font><FONT FACE="System" LANG="ZH-CN">23H</FONT><FONT FACE="宋体" LANG="ZH-CN">)则代表内部</FONT><FONT FACE="System" LANG="ZH-CN">RAM23H</FONT><FONT FACE="宋体" LANG="ZH-CN">单元中的值,(</FONT><FONT FACE="System" LANG="ZH-CN">A</FONT><FONT FACE="宋体" LANG="ZH-CN">)则代表累加器</FONT><FONT FACE="System" LANG="ZH-CN">A</FONT><FONT FACE="宋体" LANG="ZH-CN">单元中的值。</font></P><FONT FACE="宋体" LANG="ZH-CN">
<P ALIGN="JUSTIFY"><LI>上机练习:</LI><p></P></font></OL>
<OL>
<FONT FACE="宋体" LANG="ZH-CN">
<P ALIGN="JUSTIFY">
</font>
<LI><FONT FACE="宋体" LANG="ZH-CN">进入</font><FONT FACE="System" LANG="ZH-CN">DOS</FONT><FONT FACE="宋体" LANG="ZH-CN">状态,进入</FONT><FONT FACE="System" LANG="ZH-CN">WAVE</FONT><FONT FACE="宋体" LANG="ZH-CN">所在的目录,例</FONT><FONT FACE="System" LANG="ZH-CN">D:\WAVE</font></LI>
<FONT FACE="System" LANG="ZH-CN">
<p></P>
</FONT><FONT FACE="宋体" LANG="ZH-CN">
<P ALIGN="JUSTIFY">
</FONT>
<LI><FONT FACE="宋体" LANG="ZH-CN">键入</font><FONT FACE="System" LANG="ZH-CN">MCS51</FONT><FONT FACE="宋体" LANG="ZH-CN">,出现如下画面</font></LI>
<FONT FACE="宋体" LANG="ZH-CN">
<p></P>
</FONT><FONT FACE="System" LANG="ZH-CN">
<P ALIGN="JUSTIFY"><IMG SRC="1101.gif" WIDTH=564 HEIGHT=303>图1</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN">
<P ALIGN="JUSTIFY">
</FONT>
<LI><FONT FACE="宋体" LANG="ZH-CN">按</font><FONT FACE="System" LANG="ZH-CN">File->Open</FONT><FONT FACE="宋体" LANG="ZH-CN">,出现对话框后,在</FONT><FONT FACE="System" LANG="ZH-CN">Name</FONT><FONT FACE="宋体" LANG="ZH-CN">处输入一个文件名(见图</FONT><FONT FACE="System" LANG="ZH-CN">2</FONT><FONT FACE="宋体" LANG="ZH-CN">),如果是下面列表中已存在的,则打开这个文件,如果不存在这个文件,则新建一个文件(见图</FONT><FONT FACE="System" LANG="ZH-CN">3</FONT><FONT FACE="宋体" LANG="ZH-CN">)</font></LI>
<FONT FACE="宋体" LANG="ZH-CN">
<p></P>
</FONT><FONT FACE="System" LANG="ZH-CN">
<P ALIGN="JUSTIFY"><IMG SRC="1102.gif" WIDTH=560 HEIGHT=303>图2<IMG SRC="1103.gif" WIDTH=351 HEIGHT=230></P>
</FONT><FONT FACE="宋体" LANG="ZH-CN">
<P ALIGN="JUSTIFY">
</FONT>
<LI><FONT FACE="宋体" LANG="ZH-CN">在空白处将上面的程序输入。见图</font><FONT FACE="System" LANG="ZH-CN">4</FONT><FONT FACE="宋体" LANG="ZH-CN">。用</FONT><FONT FACE="System" LANG="ZH-CN">ALT+A</FONT><FONT FACE="宋体" LANG="ZH-CN">汇编通过。用</FONT><FONT FACE="System" LANG="ZH-CN">F8</FONT><FONT FACE="宋体" LANG="ZH-CN">即可单步执行,在执行过程中注意观察屏幕左边的工作寄存器及</FONT><FONT FACE="System" LANG="ZH-CN">A</FONT><FONT FACE="宋体" LANG="ZH-CN">累加器中的值的变化。</font></LI>
<FONT FACE="宋体" LANG="ZH-CN">
<p></P>
</FONT><FONT FACE="System" LANG="ZH-CN">
<P ALIGN="JUSTIFY"><IMG SRC="1104.gif" WIDTH=560 HEIGHT=302>图4</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN">
<P ALIGN="JUSTIFY">
</FONT>
<LI><FONT FACE="宋体" LANG="ZH-CN">内存中值的变化在此是看不到的,可以用如下方法观察(看图</font><FONT FACE="System" LANG="ZH-CN">5</FONT><FONT FACE="宋体" LANG="ZH-CN">):将鼠标移到</FONT><FONT FACE="System" LANG="ZH-CN">DATA</FONT><FONT FACE="宋体" LANG="ZH-CN">,双击,则光标进入此行,此时可以键盘上的上下光标键上下翻动来观察内存值的变化。本行的最前面</FONT><FONT FACE="System" LANG="ZH-CN">DATA</FONT><FONT FACE="宋体" LANG="ZH-CN">后面的数据代表的是“一段”的开始地址,如现在为</FONT><FONT FACE="System" LANG="ZH-CN">20H</FONT><FONT FACE="宋体" LANG="ZH-CN">,再看屏幕的最上方,数字从</FONT><FONT FACE="System" LANG="ZH-CN">0</FONT><FONT FACE="宋体" LANG="ZH-CN">到</FONT><FONT FACE="System" LANG="ZH-CN">F</FONT><FONT FACE="宋体" LANG="ZH-CN">,显示两者相加就等于真正的地址值,如现在图上所示的内存</FONT><FONT FACE="System" LANG="ZH-CN">20H</FONT><FONT FACE="宋体" LANG="ZH-CN">、</FONT><FONT FACE="System" LANG="ZH-CN">21H</FONT><FONT FACE="宋体" LANG="ZH-CN">、</FONT><FONT FACE="System" LANG="ZH-CN">22H</FONT><FONT FACE="宋体" LANG="ZH-CN">、</FONT><FONT FACE="System" LANG="ZH-CN">23H</FONT><FONT FACE="宋体" LANG="ZH-CN">中的值分别是</FONT><FONT FACE="System" LANG="ZH-CN">FBH
</FONT><FONT FACE="宋体" LANG="ZH-CN">、</FONT><FONT FACE="System" LANG="ZH-CN">0EH</FONT><FONT FACE="宋体" LANG="ZH-CN">、</FONT><FONT FACE="System" LANG="ZH-CN">E8H</FONT><FONT FACE="宋体" LANG="ZH-CN">、</FONT><FONT FACE="System" LANG="ZH-CN">30H</FONT><FONT FACE="宋体" LANG="ZH-CN">。</font></LI>
<FONT FACE="宋体" LANG="ZH-CN">
<p></P>
</FONT><FONT FACE="System" LANG="ZH-CN">
<P ALIGN="JUSTIFY">
</FONT>
<p><FONT FACE="System" LANG="ZH-CN"><IMG SRC="1105.gif" WIDTH=694 HEIGHT=431>图5</font></p>
<p><FONT FACE="宋体" LANG="ZH-CN">6、当</FONT><FONT FACE="宋体" LANG="ZH-CN">运行完程序后,即进入它的反汇编区,不是我们想要的东西。为了再从头开始,可以用</FONT><FONT FACE="System" LANG="ZH-CN">CTRL+F2</FONT><FONT FACE="宋体" LANG="ZH-CN">功能键复位</FONT><FONT FACE="System" LANG="ZH-CN">PC</FONT><FONT FACE="宋体" LANG="ZH-CN">值。注意此时不会看到原来的窗口,为看到原来的窗口,请用</FONT><FONT FACE="System" LANG="ZH-CN">ALT+4</FONT><FONT FACE="宋体" LANG="ZH-CN">或</FONT><FONT FACE="System" LANG="ZH-CN">ALT+5</FONT><FONT FACE="宋体" LANG="ZH-CN">等来切换。当然以上操作也可以菜单进行。</FONT><FONT FACE="System" LANG="ZH-CN">CTRL+F2</FONT><FONT FACE="宋体" LANG="ZH-CN">是程序复位,用</FONT><FONT FACE="System" LANG="ZH-CN">RUN</FONT><FONT FACE="宋体" LANG="ZH-CN">菜单。窗口用</FONT><FONT FACE="System" LANG="ZH-CN">WINDOWS</FONT><FONT FACE="宋体" LANG="ZH-CN">菜单。</font></p>
<FONT FACE="宋体" LANG="ZH-CN"> </font><FONT FACE="宋体" LANG="ZH-CN"> </font><FONT FACE="宋体" LANG="ZH-CN">
<p></P>
</font>
</OL>
<FONT FACE="宋体" LANG="ZH-CN">
<DIR>
<P ALIGN="JUSTIFY">此次大家就用用熟这个软件吧,说实话,我并不很喜欢它,操作起来不方便,但给我的机器只能上这个,没办法,下次再给网友单独介绍一个好一点的吧。</P>
</DIR>
本页图片较多,如果大家无</FONT>法忍受它的等待,<a href="dpjjx11.zip">请下载</a>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -