汇编ch04 汇编语言程序格式.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编ch04 汇编语言程序格式

第4章 汇编语言程序格式 课前思考 建立并运行一个汇编语言程序有几个操作步骤? 指令和伪指令的区别是什么? 在汇编语言程序中,段定义伪指令和数据定义伪指令起什么作用? 变量和标号的类型属性分别有哪几种? 什么是表达式?其优先级顺序是如何排列的? 汇编语言的上机过程是什么? 汇编语言源程序一般由几个段组成? 汇编程序和连接程序的输入、输出文件有哪些?它们的作用是什么? 学习目标 了解编辑程序、汇编程序、连接程序的功能及其输入、输出文件的类型; 了解汇编语言源程序的格式; 熟练掌握并运用段定义伪指令和数据定义及存储器分配伪指令; 熟悉数值表达式的书写规范;上机编程时学会使用DEBUG调试程序。 学习指南 本章介绍了汇编语言程序的完整段和简化段格式。在学习本章及后续各章的内容时,可利用汇编语言程序的框架,通过上机来验证和理解各种指令和伪指令的格式、功能及作用。 重点与难点 段定义伪指令、数据定义及存储器分配伪指令及其它伪指令; 数据类型属性和代码属性及其在编程中的应用; 数值表达式的表示及其应用。 本章知识点 汇编程序功能 伪指令 汇编语言程序格式 汇编语言程序的上机过程 4.1 汇编程序功能 1、程序运行步骤及生成的文件 2、汇编程序功能 检查源程序,给出出错信息。 产生目标文件(.obj)和列表文件(.lst)。 展开宏指令。 4.2 伪操作 伪操作 又称伪指令,是汇编程序对源程序进行汇编时处理的操作,完成处理器选择、存储模式定义、数据定义、存储器分配、指示程序开始结束等功能。 伪操作与机器指令的区别: 机器指令经编译后形成机器代码,并能由CPU执行;而伪指令编译时不形成机器码。 4.2.1 处理器选择伪操作 处理器选择伪操作 .8086 选择 8086 指令系统 .286 选择 80286 指令系统 .286P 选择保护模式下的 80286 指令系统 .386 选择 80386 指令系统 .386P 选择保护模式下的 80386 指令系统 .486 选择 80486 指令系统 .486P 选择保护模式下的 80486 指令系统 .586 选择Pentium指令系统 .586P 选择保护模式下的 Pentium 指令系统 4.2.2 段定义伪操作 1、段定义伪操作 格式: 段名 SEGMENT [定位类型][组合方式][分类名] …… ;段内所有语句 段名 ENDS 例如: segname SEGMENT [align_type][combine_type][‘class’] …… segname ENDS (1)定位类型(align_type) 说明段的起始地址应有怎样的边界值 ① PARA:指定段的起始地址必须从小段边界开始,即:????0H。 ② BYTE:指定段可以从任何地址开始,它使段间不留任何间隙。 ③ WORD:指定段必须从偶地址开始。 ④ PAGE:指定段必须从页边界地址开始,即:???00H。 定位类型默认项是PARA (2)组合类型(combine_type) 说明程序连接时的段合并方法 ① PRIVATE:该段为私有段,在连接时将不与其他模块中的同名段合并。 ② PUBLIC:该段连接时可以把不同模块中的同名段相连接而形成一个段,其连接顺序由连接命令指定。 ③ STACK:把不同模块中的同名段组合而形成一个堆栈段。 组合类型默认项是PRIVATE。 完整的段定义格式 2、存储模型与简化段定义伪操作 (1)MODEL伪操作 格式: MODEL memory_model [,model options] 说明代码段、数据段在程序中如何安排的。 ① Tiny 所有数据和代码都放在一个段内,其数据和代码都是近访问,一般用于小程序。 ② Small 所有数据放在一个64KB的数据段内,所有代码放在另一个64KB的代码段内,其数据和代码都是近访问,这是最常用的一种模型。 ③ Medium数据近访问,代码则可远访问。 ④ Compact代码近访问,数据则可远访问。 ⑤ Large代码和数据都可远访问。 (2)简化的段定义伪操作 对应于标准段,有如下简化段伪操作: ① .CODE [name] 定义代码段,段名为可选项。 ② .DATA定义数据段。 ③ .STACK可指定堆栈段大小,如不指定,则默认值为1KB。 例4.2 (P124) 4.2.3 程序开始和结束伪操作 程序开始和结束伪操作 TITLE text NAME module_name END [label] .STARTUP .EXIT [return_value] 4.2.4 数据定义及存储器分配伪操作 格式: [Variable] Mn

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档