汇编语言源程序格式.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第2章汇编语言程序格式2.1汇编语言语句格式2.2伪指令2.3汇编语言源程序基本框架

2.1汇编语言语句格式同其他程序设计语言一样,汇编语言的翻译器(汇编程序)对源程序有严格的格式要求。这样,汇编程序才能确切翻译源程序,形成功能等价的机器指令(目标代码),连接后能直接运行。汇编语言程序格式就是汇编语言必须遵循的语法规则。

2.1.1汇编语言语句类型汇编语言源程序由语句序列构成,汇编语言程序中的语句可以分为指令语句、伪指令语句和宏指令语句三种。指令语句:对应于CPU指令系统中的一条机器指令,由CPU执行,能完成一定操作功能,能够翻译成机器代码的语句。01伪指令语句:无对应的机器指令,不由CPU执行,只为汇编程序在翻译汇编语言源程序时提供有关信息,并不翻译成机器代码的语句。02宏指令语句:就是由若干条指令语句形成的语句,一条宏指令语句的功能相当于若干条指令语句的功能,详见第5章。03

2.1.2汇编语言语句格式汇编语言源程序中的每个语句可以由4项组成,格式如下:[名字:]操作码[操作数[,操作数]][;注释]其中,名字项是一个符号项。操作码项是一个操作码的助记符,它可以是指令、伪指令或宏指令名。操作数项由一个或多个表达式组成,它提供为执行所要求的操作而需要的信息。注释项用来说明程序或语句的功能。“;”为识别注释项的开始。带方括号的项是可选项,需要根据具体情况而定。汇编语言源程序中的每条语句一般占一行,各项之间必须用空格或制表符作为分隔符,操作数之间用逗号分隔。

1.名字项名字是用户按照一定规则定义的标识符,可由下列符号组成:字母A~Z、a~z数字0~9特殊字符?、.、@、_、$数字不能作名字项的第一个字符。而圆点仅能用作第一个字符,可以用很多字符来说明名字,但只有前面的31个字符能被汇编程序所识别。为了便于记忆,名字的定义应该能够见名知义,如用BUFFER表示缓冲区、SUM表示累加和等。名字有两种形式:标号或变量。指令语句中的名字通常用标号表示,而伪指令语句中的名字通常用变量名、段名和过程名表示,多数情况下用变量名表示。

(1) 标号标号在代码段中定义,也可以用EQU或LABEL伪指令来定义,标号与其所代表的指令之间用冒号分开,用来代表一条指令所在单元的地址。标号也可以作为过程名定义。标号经常在转移指令的操作数字段出现,用以表示转向的目标地址。标号在命名时,应尽量取有意义的字符,以便程序的阅读和理解。

标号有3种属性:段属性、偏移属性和类型属性。段属性:标号所代表指令单元的段起始地址,此值必须在一个段寄存器中,而标号的段则总是在CS寄存器中。偏移属性:标号所代表指令单元的段内偏移地址,标号的偏移地址是从段起始地址到定义标号的位置之间的字节数。对于16位段是16位无符号数。类型属性:用来指出标号是在本段内引用还是在其他段中引用的。如是在段内引用的,则称为NEAR,转移源和转移目标在同一个代码段中,转移时,只改变IP值,不改变CS值;如在段外引用,则称为FAR,转移源和转移目标在不同的代码段中,转移时,既改变IP值,又改变CS值。

(2) 变量变量在除代码段以外的其它段中定义,后面不跟冒号。它也可以用EQU或LABEL伪指令来定义。变量是一个可以存放数据的存储单元的名字,即存放数据的存储单元的地址符号名。变量用DB、DW、DD定义,此时变量名仅表示该数据区或存储区的第一个数据单元的首地址。变量经常在操作数字段出现。

变量也有3种属性:段属性、偏移属性和类型属性。段属性:变量所代表数据单元的段起始地址,此值必须在一个段寄存器中(DS、ES或SS中)。偏移属性:变量所代表数据单元的段内偏移地址,变量的偏移地址是从段的起始地址到定义变量的位置之间的字节数。对于16位段是16位无符号数。在当前段内给出变量的偏移值等于当前地址计数器的值,当前地址计数器的值可以用$来表示。类型属性:变量的类型属性定义该变量所保留的字节数,如BYTE(1个字节长),WORD(2个字节长),DWORD(4个字节长)。这一点,将在数据定义伪指令中说明。在同一个程序中,同样的标号或变量的定义只允许出现一次,否则汇编程序会指示出错。

2.操作码项操作码项可以是指令、伪指令或宏指令的助记符。助记符表示指令语句的功能,如INC、MOV等,其符号与意义是由系统定义的,编程时必须照写不误,既不能多写,也不能少写,如果指令带有前缀(如REP、REPE等),则指令前缀和指令助记符要用空格分开。对于指令,汇编程序将其翻译为机器语言指令。对于伪指令,汇编程序将根据其所要求的功能进行处理。对于宏指令,则将根据其定义展开。在第5章中将会专门讨论。

3.操作数项指令中的操作数用来指定参与操作的数据。对于一般指令,可以有一个或两个操作数,也可以没有操作数;对于

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档