📄 masm3.htm
字号:
<p align="JUSTIFY">07H
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">08H
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">09H
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">0AH
</font></td>
</tr>
<tr>
<td width="9%" valign="TOP"> <font face="宋体" lang="ZH-CN" size=3>
<p align="JUSTIFY">代码
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">02H
</font></td>
<td width="9%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">10H
</font></td>
<td width="9%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">30H
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">02H
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">10H
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">40H
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">00H
</font></td>
<td width="8%" valign="TOP"> </td>
<td width="8%" valign="TOP"> </td>
<td width="8%" valign="TOP"> </td>
<td width="8%" valign="TOP"> </td>
</tr>
<tr>
<td width="9%" valign="TOP"> <font face="宋体" lang="ZH-CN" size=3>
<p align="JUSTIFY">地址
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">0BH
</font></td>
<td width="9%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">0CH
</font></td>
<td width="9%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">0DH
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">0EH
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">0FH
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">10H
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">11H
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">12H
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">13H
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">14H
</font></td>
<td width="8%" valign="TOP"> <font face="Arial" size=3>
<p align="JUSTIFY">15
</font></td>
</tr>
</table>
<p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size=3>由上面的映象图可知</font><font face="Arial" size=3>,</font><font face="宋体" lang="ZH-CN" size=3>在03H处的代码为10H,而不是我们要的02H,所以外断程序INT_0不能被正确执行,其它各中断程序的情况同样如此,如在0BH处,本来存放的应当是定时器0中断程序,但按上述的映象图,0BH处开始的3个代码是:02H,10H,30H,这是定时器1的入口地址,所以,如果定时器0发生中断,所执行的其实是定时器1的中断程序,这当然不对。</font></p>
<p align="JUSTIFY"><font face="Arial" size=3> </font><font face="宋体" lang="ZH-CN" size=3>例2:</font></p>
<font face="Arial" size=3>
<p align="JUSTIFY"> <i> INT_0 EQU 1000H</i></p>
<i>
<p align="JUSTIFY"> TIME_0 EQU 1010H</p>
<p align="JUSTIFY"> INT_1 EQU 1020H</p>
<p align="JUSTIFY"> TIME_1 EQU 1030H</p>
<p align="JUSTIFY"> SERIAL EQU 1040H</p>
</i></font>
<p align="JUSTIFY"><i><font face="Arial" size=3> AJMP START ;</font></i><i><font face="宋体" lang="ZH-CN" size=3>跳转到主程序起始点</font></i></p>
<i> <font face="Arial" size=3>
<p align="JUSTIFY"> ORG 0003H</p>
</font>
<p align="JUSTIFY"><font face="Arial" size=3> LJMP INT_0 ;</font><font face="宋体" lang="ZH-CN" size=3>外中断</font><font face="Arial" size=3>0</font><font face="宋体" lang="ZH-CN" size=3>处理程序</font></p>
<font face="Arial" size=3>
<p align="JUSTIFY"> ORG 000BH</p>
</font>
<p align="JUSTIFY"><font face="Arial" size=3> LJMP TIME_0 ;</font><font face="宋体" lang="ZH-CN" size=3>定时中断</font><font face="Arial" size=3>0</font><font face="宋体" lang="ZH-CN" size=3>处理程序</font></p>
<font face="Arial" size=3>
<p align="JUSTIFY"> ORG 0013H</p>
</font>
<p align="JUSTIFY"><font face="Arial" size=3> LJMP INT_1 ;</font><font face="宋体" lang="ZH-CN" size=3>外中断</font><font face="Arial" size=3>1</font><font face="宋体" lang="ZH-CN" size=3>处理程序</font></p>
<font face="Arial" size=3>
<p align="JUSTIFY"> ORG 001BH</p>
</font>
<p align="JUSTIFY"><font face="Arial" size=3> LJMP TIME_1 ;</font><font face="宋体" lang="ZH-CN" size=3>定时中断</font><font face="Arial" size=3>1</font><font face="宋体" lang="ZH-CN" size=3>处理程序</font></p>
<font face="Arial" size=3>
<p align="JUSTIFY"> ORG 0023H</p>
</font>
<p align="JUSTIFY"><font face="Arial" size=3> LJMP SERIAL ;</font><font face="宋体" lang="ZH-CN" size=3>串行口中断程序</font></p>
<font face="Arial" size=3>
<p align="JUSTIFY">START:</p>
<p align="JUSTIFY"> NOP</p>
<p align="JUSTIFY"> END</p>
</font></i>
<p align="JUSTIFY"><font face="Arial" size=3><i> </i></font> <font face="宋体" lang="ZH-CN" size=3>上面的程序经过汇编后列表文件如下:</font></p>
<i><font face="Arial" size=3>
<p align="JUSTIFY">The Cybernetic Micro Systems 8051 Family Assembler, Version
3.03 Page 1</p>
<p align="JUSTIFY"> 08-26-96</p>
<p align="JUSTIFY"> 1000 = INT_0 EQU 1000H</p>
<p align="JUSTIFY"> 1010 = TIME_0 EQU 1010H</p>
<p align="JUSTIFY"> 1020 = INT_1 EQU 1020H</p>
<p align="JUSTIFY"> 1030 = TIME_1 EQU 1030H</p>
<p align="JUSTIFY"> 1040 = SERIAL EQU 1040H</p>
</font>
<p align="JUSTIFY"><font face="Arial" size=3> 0000 0126 AJMP START ;</font><font face="宋体" lang="ZH-CN" size=3>跳转到主程序起始点</font></p>
<font face="Arial" size=3>
<p align="JUSTIFY"> 0003 ORG 0003H</p>
</font>
<p align="JUSTIFY"><font face="Arial" size=3> 0003 021000 LJMP INT_0 ;</font><font face="宋体" lang="ZH-CN" size=3>外中断</font><font face="Arial" size=3>0</font><font face="宋体" lang="ZH-CN" size=3>处理程序</font></p>
<font face="Arial" size=3>
<p align="JUSTIFY"> 000B ORG 000BH</p>
</font>
<p align="JUSTIFY"><font face="Arial" size=3> 000B 021010 LJMP TIME_0 ;</font><font face="宋体" lang="ZH-CN" size=3>定时中断</font><font face="Arial" size=3>0</font><font face="宋体" lang="ZH-CN" size=3>处理程序</font></p>
<font face="Arial" size=3>
<p align="JUSTIFY"> 0013 ORG 0013H</p>
</font>
<p align="JUSTIFY"><font face="Arial" size=3> 0013 021020 LJMP INT_1 ;</font><font face="宋体" lang="ZH-CN" size=3>外中断</font><font face="Arial" size=3>1</font><font face="宋体" lang="ZH-CN" size=3>处理程序</font></p>
<font face="Arial" size=3>
<p align="JUSTIFY"> 001B ORG 001BH</p>
</font>
<p align="JUSTIFY"><font face="Arial" size=3> 001B 021030 LJMP TIME_1 ;</font><font face="宋体" lang="ZH-CN" size=3>定时中断</font><font face="Arial" size=3>1</font><font face="宋体" lang="ZH-CN" size=3>处理程序</font></p>
<font face="Arial" size=3>
<p align="JUSTIFY"> 0023 ORG 0023H</p>
</font>
<p align="JUSTIFY"><font face="Arial" size=3> 0023 021040 LJMP SERIAL ;</font><font face="宋体" lang="ZH-CN" size=3>串行口中断程序</font></p>
<font face="Arial" size=3>
<p align="JUSTIFY"> START:</p>
<p align="JUSTIFY"> 0026 00 NOP</p>
<p align="JUSTIFY"> 0000 END</p>
<p align="JUSTIFY">The Cybernetic Micro Systems 8051 Family Assembler, Version
3.03 Page 2</p>
<p align="JUSTIFY"> 08-26-96</p>
<p align="JUSTIFY"> ;%T Symbol Name Type Value</p>
<p align="JUSTIFY"> INT_0 . . . . . . . . . . . . . I 1000</p>
<p align="JUSTIFY"> INT_1 . . . . . . . . . . . . . I 1020</p>
<p align="JUSTIFY"> SERIAL. . . . . . . . . . . . . I 1040</p>
<p align="JUSTIFY"> START . . . . . . . . . . . . . L 0026</p>
<p align="JUSTIFY"> TIME_0. . . . . . . . . . . . . I 1010</p>
<p align="JUSTIFY"> TIME_1. . . . . . . . . . . . . I 1030</p>
<p align="JUSTIFY"> ;%Z</p>
<p align="JUSTIFY"> 00 Errors (0000)</p>
</font></i>
<p align="JUSTIFY"><font face="Arial" size=3> </font><font face="宋体" lang="ZH-CN" size=3>由列表文件,可以绘出代码在ROM中的映象图如下:</font></p>
<table cellspacing=0 border=0 cellpadding=1 width=556>
<tr>
<td width="8%" valign="TOP"> <font face="宋体" lang="ZH-CN" size=3>
<p align="JUSTIFY">代码
</font></td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -