⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 masm3.htm

📁 本单片机教程是平凡老师花了大量时间
💻 HTM
📖 第 1 页 / 共 5 页
字号:
        <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">28H 
        </font></td>
      <td width="8%" valign="TOP"> <font face="宋体" size=2> 
        <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">29H 
        </font></td>
      <td width="8%" valign="TOP"> <font face="宋体" size=2> 
        <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">2AH 
        </font></td>
      <td width="8%" valign="TOP"> <font face="宋体" size=2> 
        <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">2BH 
        </font></td>
    </tr>
  </table>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>由映象图可知,各中断程序的代码都在其规定地址处,一旦产生中断即可执行相应的程序。至于图中未填的部分(如</font><font face="宋体" size=2>02H)</font><font face="宋体" lang="ZH-CN" size=2>,根据各编程器不同而不同,一般为</font><font face="宋体" size=2>FFH</font><font face="宋体" lang="ZH-CN" size=2>或</font><font face="宋体" size=2>00H</font><font face="宋体" lang="ZH-CN" size=2>。</font><b><font face="宋体" lang="ZH-CN" size="2"> 
    </font></b></p>
  <b><font face="宋体" lang="ZH-CN"> 
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></p>
  </font> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font size="2" face="宋体" lang="ZH-CN">二、</font><font size="2" face="宋体">END
  </font><font face="Arial"> 
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></p>
  </font></b> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" size=2> END</font><font face="宋体" lang="ZH-CN" size=2>语句标志源代码的结束,汇编程序遇到</font><font face="宋体" size=2>END</font><font face="宋体" lang="ZH-CN" size=2>语句即停止运行。若没有</font><font face="宋体" size=2>END</font><font face="宋体" lang="ZH-CN" size=2>语句,汇编将报错。</font><font face="宋体" size=2>END</font><font face="宋体" lang="ZH-CN" size=2>语句有一个参数,可以是数值</font><font face="宋体" size=2>0</font><font face="宋体" lang="ZH-CN" size=2>,也可以是表达式,其格式是:</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>标号</font><font face="宋体" size=2>:  
    END </font><font face="宋体" lang="ZH-CN" size=2>表达式</font></p> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>它的值就是程序的地址并且作为一个特殊的记录写入</font><font face="宋体" size=2>HEX</font><font face="宋体" lang="ZH-CN" size=2>文件。若这个表达式省略,</font><font face="宋体" size=2>HEX</font><font face="宋体" lang="ZH-CN" size=2>文件中其值就是</font><font face="宋体" size=2>0</font><font face="宋体" lang="ZH-CN" size=2>。</font></p>
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <b><font size="2" face="宋体" lang="ZH-CN">三、</font><font size="2" face="宋体">EQU
  </font></b></p><b>
  <font face="Arial"> 
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></p>
  </font></b> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" size=2> EQU</font><font face="宋体" lang="ZH-CN" size=2>以及其它一些符号定义伪指令用来给程序中出现的一些符号赋值。对这些符号名的要求与其它符号相同,即长度不限,大小写字母可互换并且必须以字母开头。</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>由等值指令定义的符号是汇编符号表的一部分。等值伪指令有两种形式。一种用</font><font face="宋体" size=2>EQU</font><font face="宋体" lang="ZH-CN" size=2>,另一种用字符“</font><font face="宋体" size=2>=</font><font face="宋体" lang="ZH-CN" size=2>”即</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>符号名</font><font size=2 face="宋体">  
    EQU 
 </font><font face="宋体" lang="ZH-CN" size=2>表达式</font></p> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>符号名</font><font size=2 face="宋体">  
    = 
 </font><font face="宋体" lang="ZH-CN" size=2>表达式</font></p> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>两种形式的效果是一样的。符号名在左边,其对应的值在右边。值可以是变元,其它的符号名或表达式。只要在两遍扫描中求出表达式的值就行,否则引用该符号名时将报错。当表达式的值是字符串时,只取后两个字符。若串长为</font><font face="宋体" size=2>1</font><font face="宋体" lang="ZH-CN" size=2>,高位字节被置</font><font face="宋体" size=2>0</font><font face="宋体" lang="ZH-CN" size=2>,符号名的值被打印在程序清单中。由等值伪指令定义的符号名不允许重名。如果经定义的符号名被重定义,则汇编将报出错,并且这个符号名按新定义的处理,最好不要在程序中出现重名。</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>例:</font><i><font face="宋体" size=2>0469=  
    ABC EQU 469H</font></i></p> 
  <i><font face="宋体" size=2> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 0464= XY EQU ABC-5</p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 02F0= JK = 752</p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 0754 XYJK = XY+JK</p>
  </font></i> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>在列表文件中最左边的数字不是这些伪指令所在的地址而是通过汇编后赋给符号名的值。第一条符号名</font><font face="宋体" size=2>ABC</font><font face="宋体" lang="ZH-CN" size=2>被起来</font><font face="宋体" size=2>469H</font><font face="宋体" lang="ZH-CN" size=2>,第二条</font><font face="宋体" size=2>XY</font><font face="宋体" lang="ZH-CN" size=2>被赋于</font><font face="宋体" size=2>ABC-5</font><font face="宋体" lang="ZH-CN" size=2>,因此</font><font face="宋体" size=2>XY</font><font face="宋体" lang="ZH-CN" size=2>的值为</font><font face="宋体" size=2>469H-5=464H</font><font face="宋体" lang="ZH-CN" size=2>,</font><font face="宋体" size=2>JK</font><font face="宋体" lang="ZH-CN" size=2>的值为</font><font face="宋体" size=2>752</font><font face="宋体" lang="ZH-CN" size=2>(即</font><font face="宋体" size=2>2F0H)</font><font face="宋体" lang="ZH-CN" size=2>,</font><font face="宋体" size=2>XYJK</font><font face="宋体" lang="ZH-CN" size=2>的值</font><font face="宋体" size=2>XY+JK=464H+2F0H=754H</font></p>
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <b><font size="2" face="宋体" lang="ZH-CN">四、</font><font size="2" face="宋体">SET
  </font></b></p><b>
  <font face="Arial"> 
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></p>
  </font></b> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" size=2> SET</font><font face="宋体" lang="ZH-CN" size=2>伪指令有些类似于等值伪指令,它定义了一个整数类型的符号名,它的格式为</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>符号名</font><font size=2 face="宋体">  
    SET 
 </font><font face="宋体" lang="ZH-CN" size=2>表达式</font></p> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" size=2> SET</font><font face="宋体" lang="ZH-CN" size=2>伪指令与等值伪指令的唯一区别在于</font><font face="宋体" size=2>SET</font><font face="宋体" lang="ZH-CN" size=2>伪指令所定义的符号名右以在程序中多次定义,而不报错。</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>例:</font><i><font face="宋体" size=2>002D=  
    K57 SET 101101B</font></i></p> 
  <i><font face="宋体" size=2> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 8707= K57 SET 34567</p>
  </font></i><b> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 
  <font size="2" face="宋体" lang="ZH-CN">五、</font><font size="2"><font face="宋体">DATA</font><font face="宋体" lang="ZH-CN">与</font></font><font size="2" face="宋体">BYTE
  </font><font face="Arial"> 
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></p>
  </font></b> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" size=2> DATA</font><font face="宋体" lang="ZH-CN" size=2>与</font><font face="宋体" size=2>BYTE</font><font face="宋体" lang="ZH-CN" size=2>都是用来定义字节类型的存储单元,赋予字节类型的存储单元一个符号名,以便在程序中通过符号名来访问这个存储单元,以帮助对程序的理解。</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" size=2> BYTE</font><font face="宋体" lang="ZH-CN" size=2>与</font><font face="宋体" size=2>DATE</font><font face="宋体" lang="ZH-CN" size=2>之间的区别类似于</font><font face="宋体" size=2>EQU</font><font face="宋体" lang="ZH-CN" size=2>和</font><font face="宋体" size=2>SET</font><font face="宋体" lang="ZH-CN" size=2>,</font><font face="宋体" size=2>BYTE</font><font face="宋体" lang="ZH-CN" size=2>伪指令不能定义重名。</font></p>
  <b> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 
  <font size="2" face="宋体" lang="ZH-CN">六、</font><font size="2" face="宋体">WORD
  </font><font face="Arial"> 
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></p>
  </font></b> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" size=2> WORD</font><font face="宋体" lang="ZH-CN" size=2>伪指令类似于</font><font face="宋体" size=2>DATE</font><font face="宋体" lang="ZH-CN" size=2>伪指令,只是</font><font face="宋体" size=2>WORD</font><font face="宋体" lang="ZH-CN" size=2>伪指令定义了一个字类型的符号名,其格式为:</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"><i>
  <font face="宋体" lang="ZH-CN" size=2>符号名</font><font size=2 face="宋体">  
    WORD 
 </font><font face="宋体" lang="ZH-CN" size=2>表达式</font></i></p> 
  <i> <font face="宋体" size=2> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 0027= VAL31 WORD 39</p> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 0021= PAR7 WORD 21H</p>
  </font></i> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>一个字由2个字节组成。当然,因为8051汇编语言集没有字操作,所以程序执行时,只处理字节。WROD伪指令仅仅允许用户定义一个认为是字的存储位置。</font></p>
  <b> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 
  <font size="2" face="宋体" lang="ZH-CN">七、</font><font size="2" face="宋体">BIT
  </font><font face="Arial"> 
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></p>
  </font></b> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" size=2> BIT</font><font face="宋体" lang="ZH-CN" size=2>伪指令定义了一个字位类型的符号名,其格式为:</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>符号名</font><font size=2 face="宋体">  
    BIT 
 </font><font face="宋体" lang="ZH-CN" size=2>表达式</font></p> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>这里表达式的值是一个位地址,这个伪指令有助于位的地址符号化。</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>例:</font></p>
  <font face="宋体" size=2> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <i> 002F= LOG3 BIT 47</i></p> 
  <i> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 0014= Y731 BIT 14H</p>
  </i></font><b> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 
  <font size="2" face="宋体" lang="ZH-CN">八、</font><font size="2" face="宋体">ALTNAME
  </font><font face="Arial"> 
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></p>
  </font></b> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>替换名(</font><font face="宋体" size=2>ALTNAME</font><font face="宋体" lang="ZH-CN" size=2>)伪指令提供用户一种手段,以定义一个符号名来替换一个保留字,此后这个答名与被替换的保留字均可等效地用于程序中。任何保留类型的答名均可被替换。替换名伪指令格式为:</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" size=2> ALTNAME </font><font face="宋体" lang="ZH-CN" size=2>保留字,新名</font></p> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>例:</font></p>
  <font face="宋体" size=2> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <i>0002= ALTNAME R2 COUNT</i></p> 
  <i> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 013A EA MOV A,R2</p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 013B E502 MOV A,COUNT</p>
  </i></font><font face="宋体" lang="ZH-CN" size=3> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"></p>
  </font>
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"><b><font face="宋体" lang="ZH-CN">
  <font size="2">九、DB </font></font></b></p><b><font face="宋体" lang="ZH-CN">
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></p>
  </font></b> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>DB伪指令用于定义一个连续的存储区,给该存储区的存储单元赋值。该伪指令的参数即为存储单元的值,在表达式中对变元个数没有限制,只要此条伪指令能容纳在源程序的一行内,其格式为:</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>标号:</font><font size=2 face="宋体">  
    DB 
 </font><font face="宋体" lang="ZH-CN" size=2>表达式</font></p> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>只要表达式不是字符串,每一表达式值都被赋给一个字节。计算表达式值时按16位处理,但其结果只取低8位,若多个表达式出现在一个DB伪指令中,它们必须以逗号分开。</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>表达式中有字符串时,以单引号“</font><font face="宋体" size=2>'</font><font face="宋体" lang="ZH-CN" size=2>”作分隔符,每个字符占一个字节,字符串不加改变地被存在各字节中,并不将小写字母转换成大写字母。</font></p>
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
  <font face="宋体" lang="ZH-CN" size=2>例如:</font></p>
  <font face="宋体" size=2> 
  <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <i>DB 00H 01H 03H 46

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -