80X86汇编语言程序设计第4章.pptVIP

  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文档。上传文档
查看更多
本章要点 掌握汇编语言源程序的基本格式 熟练掌握常用伪指令及操作符的使用方法 通过上机实践,熟悉汇编语言程序的开发过程 掌握程序调试的基本方法 第4章 汇编语言程序格式 第4章 汇编语言程序格式 4.1 变量、标号与表达式 4.2 语句格式 4.3 基本伪指令 4.4 操作符 4.5 源程序的基本结构 4.6 汇编语言程序开发 4.7 本章小结 4.1 变量、标号与表达式 1.数值表达式 数值表达式可以是一个常整数、字符、字符串或者由若干运算符与运算分量构成。 数值表达式是在汇编时求值的。在汇编时,MASM根据运算符的优先级对数值表达式的值进行计算,最终得到一个常数。 (1)常整数: 二进制、十进制、十六进制、八进制数。 (2)字符与字符串:用单引号或双引号括起来。 字符当作整数来处理。 字符串一般用在DB伪指令之后。若将字符串用于其他地方,如作为指令的操作数,则汇编时按整数处理,一般应避免使用。 (3)运算符 算术运算符 逻辑运算符 关系运算符 4.1 变量、标号与表达式 2.变量与标号 变量与标号的3种属性: 段地址 偏移地址 类型 变量的类型包括BYTE(字节)、WORD(字)、DWORD(双字)等。 标号的类型包括NEAR和FAR。 4.1 变量、标号与表达式 3.地址表达式 地址表达式的基本形式为: 变量名或标号名 ± 常数 其类型由相应的变量或标号确定。 两个地址表达式的差表示两个地址之间的距离(字节数),两个地址必须在同一个段内。注意,不能将两个地址表达式相加。 $是一个特殊的地址表达式,表示当前地址,即地址计数器的当前值。 4.1 变量、标号与表达式 4.地址计数器 汇编器在将源程序转换为目标程序的过程中,每汇编一个段,都需要跟踪其中代码或数据的偏移地址,这就是地址计数器。 地址计数器的值表示当前偏移地址。在缺省情况下,段的偏移地址从0开始。 例如,下列指令序列: 0: mov bl, al ; 机器码为2字节 2: and bl, 0fh ; 机器码为3字节 5: mov bh, al ; 机器码为2字节 7: shr bh, 4 ; 机器码为3字节 A: 若该指令序列出现在段的开始,那么,在汇编相应指令时,地址计数器的值如左侧所示。例如,第1条MOV指令始于偏移地址0,由于该MOV指令是2字节,故下一条指令始于偏移地址2,等等。 4.2 语句格式 (1)语句的书写形式: 名字 助记符 操作数 ; 注释 (2)MASM对语句格式的要求: 大小写无关。 每条语句必须占1行,但可以使用续行符“\”。 为了提高可读性,应该使各个域对齐。 4.3 基本伪指令 1.处理器选择伪指令 在缺省方式下,MASM只承认8086指令。 为了使用更高的CPU指令,必须使用处理器选择伪指令,主要包括: .8086 .286 .286P .386 .386P .486 .486P .586 .586P .686 .686P 分别表示其后面的代码使用相应CPU的指令。其中,结尾的P表示使用特权指令。 若使用32位CPU新增指令以及寄存器或内存寻址方式,则至少要用.386伪指令。 4.3 基本伪指令 2.段定义伪指令 段定义由SEGMENT与ENDS伪指令实现,基本形式如下: 段名 SEGMENT STACK USE16 语句序列 段名 ENDS 其中,STACK仅用于堆栈段。USE16指出使用16位段。 在实模式下,只能使用16位段,而32位段只能用于保护模式程序。 在实模式下,如果要使用32位指令,还必须在段定义时给出USE16。 段名作为操作数出现在指令中时,MASM将其视为立即数,表示段地址。 4.3 基本伪指令 3.符号定义伪指令 基本形式: 符号名 EQU 文本串 符号名 = 数值表达式 功能:给表达式指定一个等价的符号名。 说明: (1)= 后的表达式只能是数值表达式,对于字符或字符串,汇编时按整数处理。 例如: COUNT = 20 MOV CX, COUNT ; 等价于MOV CX, 20 (2)EQU后的表达式可以是数值、字符串、寄存器名、指令助记符等。 (3)EQU不能重复定义,而 = 可重复定义,其作用域从定义点到重新定义之前。 4.3 基本伪指令 4.变量定义伪指令 变量定义伪指令用来为数据分配内存空间,并设置相应内存单元的初始值。 形式: 变量名 变量定义符 操作数,,...,操作数 其中,变量名是一个符号地址,表示其后操作数的首地

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档