网站大量收购独家精品文档,联系QQ:2885784924

汇编语言程序格式.ppt

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

汇编语言程序格式汇编语言程序格式汇编语言程序格式语句类型硬指令语句(指令性语句)是指能产生目标代码,CPU可以执行的,能完成特定功能的语句,它主要由CPU指令组成伪指令语句(指示性语句)是一种不产生目标代码的语句,它仅仅在汇编过程中告诉汇编程序应如何汇编宏指令语句 是一个指令序列,汇编时凡有宏指令语句的地方都将用相应的指令序列的目标代码插入一、汇编语句类型和格式说明性语句名字伪指令助记符参数,参数….;注释执行性语句标号:硬指令助记符操作数,操作数;注释2.语句的格式逻辑段用汇编语言源程序中的段定义伪指令来定义31248086按照逻辑段组织程序,具有代码段、数据段、附加段和堆栈段一个汇编语言源程序可以包括若干个代码段、数据段或堆栈段段与段之间的顺序可以随意排列。二、完整段定义格式二、完整段定义格式完整段定义伪指令指定段寄存器伪指令段寄存器的装入可执行程序的正常结束1.完整段定义伪指令(SEGMENT、ENDS)作用:控制汇编程序和连接程序在内存中组织代码和数据的方式。格式:段名SEGMENT[定位类型][组合类型][‘类别名’]┇段名ENDS注意:SEGMENT和ENDS总是成对出现中间省略部分称为段体。对代码段来说,则主要是程序代码;对其它段来说,一般用于变量、符号等的定义方括号中的为可选项,当有可选项时各项顺序不能错,可选项之间用空格隔开01段名是用户自定义的,但不要与指令助记符或伪指令重名02用来指示汇编程序为该段分配的存储区的首地址03段名有段地址和偏移地址两个属性04段开始和段结束的段名必须相同(1)段名(2)定位类型说明段的起始地址的边界要求,指示连接程序按定位类型提出的要求,安排各段在内存的相互衔接方式。它有5种可选择类型:①BYTE:段的起始地址可以从任何地址开始。段起始地址(20位):××××××××××××××××××××B②WORD:段的起始地址必须以偶地址开始段起始地址(20位):×××××××××××××××××××0B③DWORD:段的起始地址必须为4的倍数段起始地址(20位):××××××××××××××××××00B④PARA:段的起始地址必须从小段边界开始段起始地址(20位):××××××××××××××××0000B⑤PAGE:段的起始地址必须从页的边界开始段起始地址(20位):××××××××××××00000000B如未指定定位类型,则汇编程序默认为PARA。当程序有多个段时,组合类型用来说明段与段之间是怎样连接和定位的,共有6种组合类型:A不指定或称隐含方式:表示本段与其他模块中的同名段无连接关系,它将作为一个独立的段运行。BPUBLIC:本段与其他模块中说明为PUBLIC方式的同名段顺序连接,组成一个大的逻辑段,它们共用同一个段起始地址。CCOMMON:本段与其他模块中说明为COMMON方式的同名段从同一地址开始重叠连接,段长是同名段中最长的段的长度。D(3)组合类型STACK:表示该段是堆栈段的一部分。把所有相同‘类别名’的具有STACK组合类型的段连接成一个连续段,该段长度为各原有段的总和。将连续段首地址送SS,段内最大偏移地址送SP(SP指向栈顶)。当定义了STACK属性后,在主程序中可省略对SS和SP的初始化。01MEMORY:与PUBLIC同义。02‘类别名’类别名必须用单引号括起来。连接时对不同模块、不同名的程序段只要‘类别名’相同,则放在一个连续的物理空间,但每段之间是独立的,不进行组合。作用:明确段和段寄存器之间的关系,即告诉汇编程序,在运行期间通过哪个段才能找到所要的指令和数据02指定段寄存器伪指令(ASSUME)01例如:ASSUMECS:CODE,DS:DATA,SS:STACK04格式:ASSUME段寄存器名:段名[,段寄存器名:段名[……]]03ASSUME伪指令只是指出各段和段寄存器之间的关系,但并未真正将段基地址装入相应的段寄存器中,所以在程序的代码段开始处就应该先进行段基址的装入A数据段DS、附

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档