第5章 改过伪指令及汇编语言源程序结构.pptVIP

第5章 改过伪指令及汇编语言源程序结构.ppt

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

1 1 5.2.3 基数控制伪指令 汇编程序默认的数为十进制数,因而除非专门指定,汇编程序把程序中出现的数均看作十进制数。为此,当使用其他基数表示的常数时,需要专门给出基数的标记。 RADIX伪指令可以把默认的基数改变为2~16范围内的任何基数。 5.2.3 基数控制伪指令 其格式为: .RADIX 表达式 其中,表达式用来表示基数值(用十进制数表示)。 【例5-6】 MOV BX,0FFH MOV BX,178 与 .RADIX 16 MOV BX,0FF MOV BX,178D是等价的。 在用 .RADIX 16把基数定为十六进制后,十进制数后面都应跟字母D。在这种情况下,如果某个十六进制数的末字符为D,则应在其后跟字母H,以免与十进制数发生混淆。 5.2.4 过程定义伪指令 可把具有独立功能的程序段定义为过程,供其他程序调用。 过程定义的语法格式为 过程名 PROC NEAR/FAR? RET ? 过程名 ENDP 5.3 汇编语言源程序结构 5.3.1 完整段定义的程序结构 需要用段定义伪指令,其格式如下: 1) 定位类型(ALIGN_TYPE) 定位类型说明段的起始地址应有怎样的边界值。其取值可以是: PARA:指定段的起始地址必须从小段边界开始,即段起始地址最低位必须为0。这样,偏移地址可以从0开始。 BYTE:该段可以从任何地址开始。 这样,起始偏移地址可能不是0。 WORD:该段必须从字的边界开始,即段起始地址必须为偶数。 DWORD:该段必须从双字边界开始,即段起始地址的最低位必须为4的倍数。 PAGE:该段必须从负的边界开始,即段起始地址的最低两个十六进制数位必须为0(该地址能被256整除)。 定位类型的默认项是PARA,即若未指定定位类型,则汇编程序默认为PARA。 2) 组合类型(COMBINE_TYPE) 组合类型说明程序连接时段的合并方法。其取值可以是: PRIVATE:该段为私有段,在连接时将不与其他模块中的同名段合并。 2) 组合类型(COMBINE_TYPE) PUBLIC:该段连接时可以把不同模块中的同名段相连接而合并为一个段,其连接次序由连接命令指定。每一分段都从小段的边界开始,因此各模块的原有段之间可能存在小于16个字节的间隙。 COMMON:该段在连接时可以把不同模块中的同名段重叠而形成一个段,由于各同名分段有相同的起始地址,所以会产生覆盖。COMMON的连接长度是各分段中的最大长度。重叠部分的内容取决于排列在最后一段的内容。 MEMORY:与PUBLIC同义。 STACK:把不同模块中的同名段组合成一个堆栈段。该段的长度为原有各堆栈段长度的总和,原有各段之间并无PUBLIC所连接段中的间隙,而且栈顶可自动指向连接后形成的大堆栈段的栈顶。 组合类型的默认项是PRIVATE。 3) 使用类型(USE_TYPE) 使用类型只适用于386及其后继机型,它用来说明使用16位寻址方式还是32位寻址方式。其取值可以是: USE16:使用16位寻址方式。 USE32:使用32位寻址方式。 3) 使用类型(USE_TYPE) 当使用16位寻址方式时,段长不超过64 KB,地址的形式是16位段地址和16位偏移地址的组合;当使用32位寻址方式时,段长可达4 GB,地址的形式是16位段地址和32位偏移地址的组合。可以看出,在实模式下,应该使用USE16。 使用类型的默认项是USE16。 4) 类别名(CLASS) 在引号中给出连接时组成段组的类型名。类别说明并不能把相同类别的段合并起来,但在连接后形成的装入模块中,可以把它们的位置靠在一起。 5.3.2 简化段定义的程序结构 较新版本的汇编程序(MASM 5.0与MASM 6.0)除支持“完整的段定义伪指令” 伪指令外,还提供了一种新的较简单的段定义方法即简化段定义。 MODEL伪指令 MODEL伪指令的格式如下: .MODEL MEMORY_MODEL [, MODEL OPTIONS ] MODEL伪指令用来表示存储模型(MEMORY_MODEL),即用来说明在存储器中是如何安放各个段的。也就是说,它说明代码段在程序中如何安排,代码的寻址是近还是远,数据段在程序中又是如何安排的,数据的寻址是近还是远。根据它们的不同组合,可以建立如下7种存储模型。 (1)

文档评论(0)

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

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

1亿VIP精品文档

相关文档