📄 +ҦӦ
字号:
<P align=justify><FONT face=Arial size=3></FONT><FONT face=宋体 lang=ZH-CN
size=3>在宏汇编中,所有的参数值均为整数,以十六位二进制形式存放,因此其表示范围为0~65535。对于负数则以其补码来表示。下面给出一个例子介绍宏汇编中允许使用的各种算术操作符,请大家仔细阅读。</FONT></P><I>
<P align=justify><FONT face=Arial size=3>MOV A,#3+5 ;MOV A,#8,</FONT><FONT
face=宋体 lang=ZH-CN size=3>加法</FONT><FONT face=Arial size=3>,</FONT><FONT
face=宋体 lang=ZH-CN size=3>前面加</FONT><FONT face=Arial size=3>'#'</FONT><FONT
face=宋体 lang=ZH-CN size=3>号代表是立即数</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,3+5 ;MOV A,8 ,</FONT><FONT
face=宋体 lang=ZH-CN size=3>加法</FONT><FONT face=Arial size=3>,</FONT><FONT
face=宋体 lang=ZH-CN size=3>未加</FONT><FONT face=Arial size=3>'#'</FONT><FONT
face=宋体 lang=ZH-CN size=3>号代表</FONT><FONT face=Arial size=3>3+5</FONT><FONT
face=宋体 lang=ZH-CN size=3>是地址</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,5-3 ;MOV A,2 ,</FONT><FONT
face=宋体 lang=ZH-CN size=3>减法</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,3-5 ;MOV A,0FEH,</FONT><FONT
face=宋体 lang=ZH-CN size=3>减法</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,#5-3 ;MOV A,#2,</FONT><FONT
face=宋体 lang=ZH-CN size=3>减法</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,#5*3 ;MOV A,#15,</FONT><FONT
face=宋体 lang=ZH-CN size=3>乘法</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,#6/3 ;MOV A,#2 ,</FONT><FONT
face=宋体 lang=ZH-CN size=3>除法</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,#6 MOD 3 ;MOV A,#0
,</FONT><FONT face=宋体 lang=ZH-CN size=3>取模运算</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,01010010 SHR 3 ;MOV A,E3H
,</FONT><FONT face=宋体 lang=ZH-CN size=3>向右移位</FONT><FONT face=Arial
size=3>,01010010</FONT><FONT face=宋体 lang=ZH-CN size=3>向右移</FONT><FONT
face=Arial size=3>3</FONT><FONT face=宋体 lang=ZH-CN size=3>位</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,#21 SHL 5 ;MOV A,#0A0H
,</FONT><FONT face=宋体 lang=ZH-CN size=3>向左移位</FONT><FONT face=Arial
size=3>,21</FONT><FONT face=宋体 lang=ZH-CN size=3>向左移</FONT><FONT face=Arial
size=3>5</FONT><FONT face=宋体 lang=ZH-CN size=3>位</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A, # NOT 0A5H ;MOV A,#5AH
,</FONT><FONT face=宋体 lang=ZH-CN size=3>取</FONT><FONT face=Arial
size=3>0A5H</FONT><FONT face=宋体 lang=ZH-CN size=3>的反</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,#10101111 OR 11110000 ;MOV
A,#57H,</FONT><FONT face=宋体 lang=ZH-CN size=3>求两数之或</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,#10101010 AND 00001111 ;MOV
A,#52H,</FONT><FONT face=宋体 lang=ZH-CN size=3>求两数之与</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,#4B2H XOR 3197 ;MOV
A,#0CFH,</FONT><FONT face=宋体 lang=ZH-CN size=3>求两数之异或</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,#(HIGH 4567H) ;MOV A,#45H
,</FONT><FONT face=宋体 lang=ZH-CN size=3>取</FONT><FONT face=Arial
size=3>4567H</FONT><FONT face=宋体 lang=ZH-CN size=3>的高两位</FONT></P>
<P align=justify><FONT face=Arial size=3>MOV A,LOW 4567H ;MOV A,67H
,</FONT><FONT face=宋体 lang=ZH-CN size=3>取</FONT><FONT face=Arial
size=3>4567H</FONT><FONT face=宋体 lang=ZH-CN size=3>的低两位</FONT></P><FONT
face=Arial size=3>
<P align=justify>END<B><FONT face=宋体 lang=ZH-CN>
</FONT></B></P></FONT></I><B><FONT face=宋体 lang=ZH-CN>
<P align=justify><A name=_Toc416236554>四、机器码代码文件</A>
<P></P></FONT></B>
<P align=justify><FONT face=Arial size=3></FONT><FONT face=宋体 lang=ZH-CN
size=3>机器码代码文件由宏汇编产生,为了与一般的HEX文件相区别,通常由宏汇编产生的机器码代码文件被称为INTEL文件。该文件是由能够在处理器上运行的机器指令码组成。它可被用来传送到仿真器或用户系统中进行调试或运行。</FONT></P>
<P align=justify><FONT face=Arial size=3></FONT><FONT face=宋体 lang=ZH-CN
size=3>INTEL</FONT><FONT face=Arial size=3> </FONT><FONT face=宋体 lang=ZH-CN
size=3>HEX文件由若干行组成,每行表示一个记录,它的每一行都是可以打印的ASCII字符,用两个字符,用两个字符来表示一个字节的值。每一行的格式如下:</FONT></P>
<P align=justify><FONT face=Arial size=3>:CC aaaa tt dd.......dd
ss</FONT><FONT face=宋体 lang=ZH-CN size=3>冒号</FONT><FONT face=Arial
size=3>":"</FONT><FONT face=宋体 lang=ZH-CN
size=3>为每一行的起始符,随后为一组数据在其中。</FONT><FONT face=Arial size=3>CC </FONT><FONT
face=宋体 lang=ZH-CN size=3>为由两个字节表示的十六进制数,它的范围为</FONT><FONT face=Arial
size=3>00H~10H,</FONT><FONT face=宋体 lang=ZH-CN
size=3>它表示该记录包含的机器代码的字节数。</FONT></P>
<P align=justify><FONT face=Arial size=3>aaaa</FONT><FONT face=宋体 lang=ZH-CN
size=3>为用ASCII码表示的四个十六进制数,它是该记录第一个数据字节所驻存的存储空间的绝对地址。</FONT></P>
<P align=justify><FONT face=Arial size=3>tt</FONT><FONT face=宋体 lang=ZH-CN
size=3>是表示该记录数据类型的一个代码,若该记录为数据,则</FONT><FONT face=Arial size=3>tt</FONT><FONT
face=宋体 lang=ZH-CN size=3>为</FONT><FONT face=Arial size=3>0</FONT><FONT
face=宋体 lang=ZH-CN size=3>,否则是其它值。</FONT><FONT face=Arial
size=3>dd</FONT><FONT face=宋体 lang=ZH-CN
size=3>表示代码的实际字节值,每一个字节值用两个字符表示。(将会有</FONT><FONT face=Arial
size=3>cc</FONT><FONT face=宋体 lang=ZH-CN size=3>个</FONT><FONT face=Arial
size=3>dd</FONT><FONT face=宋体 lang=ZH-CN size=3>数据)</FONT><FONT face=Arial
size=3>ss</FONT><FONT face=宋体 lang=ZH-CN
size=3>是一个和校验,它是从计数器到最后一个数据字节的所有字节值累加和的相所数。</FONT></P>
<P align=justify><FONT face=Arial size=3></FONT><FONT face=宋体 lang=ZH-CN
size=3>当</FONT><FONT face=Arial size=3>ss</FONT><FONT face=宋体 lang=ZH-CN
size=3>与记录中所有的字相加时,其结果应该为零,若为其它值则表明该记录有错。</FONT></P><B><FONT face=宋体
lang=ZH-CN><A name=_Toc416236555>五、列表文件</A>
<P></P></FONT></B>
<P align=justify><FONT face=Arial size=3></FONT><FONT face=宋体 lang=ZH-CN
size=3>由汇编程序生成的第二个文件是列表文件,它以LST为扩展名,也是一个ASCII码字符文件,回而可以被打印显示,也可以作为程序的文档。</FONT></P>
<P align=justify><FONT face=Arial size=3></FONT><FONT face=宋体 lang=ZH-CN
size=3>列表文件是分页的,每页的长度由缺省值决定。也可以通过伪指令</FONT><FONT face=Arial
size=3>&PAGE</FONT><FONT face=宋体 lang=ZH-CN
size=3>来决定。每页以一起始行开始,用来指出汇编的类型类型和版本,以及页号。</FONT></P>
<P align=justify><FONT face=Arial size=3></FONT><FONT face=宋体 lang=ZH-CN
size=3>当用户使用</FONT><FONT face=Arial size=3>&TITLE</FONT><FONT face=宋体
lang=ZH-CN size=3>伪指令时,该行后面紧接着一个标题行,当用户使用</FONT><FONT face=Arial
size=3>SUBTITLE</FONT><FONT face=宋体 lang=ZH-CN
size=3>指令时,后再接一个子标题行。例如:</FONT><FONT face=Arial size=3>The Cybernetic Micro
Sysystems 8051 FamilyAssembler,Version 3.03 Page 109-10-83</FONT><FONT face=宋体
lang=ZH-CN size=3>。</FONT></P>
<P align=justify><FONT face=Arial size=3></FONT><FONT face=宋体 lang=ZH-CN
size=3>每页的其它部分由用户程序、汇编所产生的绝对地址和机器代码组成。通常一个行的第一个字符是一个空格,若出现</FONT><FONT
face=Arial size=3>"I"</FONT><FONT face=宋体 lang=ZH-CN
size=3>则指出这一行是个外部来的文件。而</FONT><FONT face=Arial size=3>"+"</FONT><FONT face=宋体
lang=ZH-CN size=3>则表明是一个宏扩展行。后面接着的四个字符通常是当前语句的程序地址,以十六进制形式给出,</FONT><FONT
face=Arial size=3>END</FONT><FONT face=宋体 lang=ZH-CN
size=3>指令前的四个字符表示该指令的起始地址参数值。后面有一个空格。</FONT></P>
<P align=justify><FONT face=Arial size=3></FONT><FONT face=宋体 lang=ZH-CN
size=3>程序计数器后是10个字符的空间,它通常包含该行汇编出的目标代码的十六进制值。显示出的字节值的数目依赖于每条语句所要求的字节数目,这里,每个字节值用两字符表示。对等价指令,这个域还包含一个等号(</FONT><FONT
face=Arial size=3>=</FONT><FONT face=宋体 lang=ZH-CN
size=3>)。不生成目标代码的源程序行中该域全为空格。</FONT></P>
<P align=justify><FONT face=Arial size=3></FONT><FONT face=宋体 lang=ZH-CN
size=3>每行的前16个字符后面的剩余部分包含着台的源程序文件。因而列表文件的每一行长度为源程序的长度再加上16列字符。如果是用80列宽的打印纸则源程序行的长度应小于64列,否则打印设备在打印时反长行切断,或则分成两行。</FONT></P></OL>
<P align=center><A href="http://go.163.com/~czlyzhj/dpjjx.htm"><IMG border=0
height=55 src="汇编程序的格式.files/back1.gif" width=43></A></P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -