微机电子教程 第四章汇编程序设计(精品·公开课件).ppt

微机电子教程 第四章汇编程序设计(精品·公开课件).ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.段定义伪指令 SEGMENT/ENDS ——将程序分成段:代码段,数据段,堆栈段,附加段 格式: 段名 SEGMENT [定位类型][组合属性][‘类别名’] … 段体 … 段名 ENDS 段名含段的标志符,有段基地址和段内偏移量两个属性,与某个存储单元相联系 功能:指出段名和段的各种属性,并表示段的开始和结束位置 (1)定位类型——用于告诉链接程序,链接时(多模块.obj)本段首地址的边界定位方式,常有四种: PARA 、PAGE、 WORD 、BYTE ① PARA 段的起始地址必须是16的倍数(XXXX0H),这是一 种默认方式 ② PAGE 段的起始地址必须是256的倍数(XXX00H),256字节 为一页,在页的起点上 ③ WORD 段的起始地址必须是偶数(XX…0B) ④ BYTE 段的起始地址可以是任何地址 (2) 组合类型 在多模块(每个模块有自己的代码段,数据段,堆栈段)组合时,告诉Link程序本段要与其他模块中同名段的组合链接关系。 常有6种: ①NONE: 本段与其他同名段无组合关系,并有自己的段起始地址, ——这是一种默认方式 ②PUBLIC: 在满足定位类型的前提下,LINK程序将其与其他模块中的同名段邻接在一起,共用一个段地址。 ③ STACK: 同PUBLIC 链接以后作为堆栈段,并初始化SS,SP,若不说明STACK,必须由用户产生。程序的开始地址由指定完成初始化SS,SP。 ④ COMMON:各模块中,同名段重叠,覆盖,有着相同的段地址,段长由最长的COMMON段决定。段的内容为所链接的最后一个模块中COMMON段的内容以及没有覆盖到的前面COMMON段的内容。 ⑤MEMERY:链接在其他所有段的后面(存储器高地址区域 ),若有多个MEMERY段,则只认第一个,其余按COMMON处理。 ⑥AT表达式:指定本段存放的段地址(代码段除外) 例:AT 0930H 本段从0903H开始存放 例: 两个模块 模块1: STACK SEGMENTY STACK DW 20 DUP(?) STACK ENDS DATA SEGMENT COMMON …… DATA ENDS CODE SEGMENT PUBLIC …… CODE ENDS END (3) 类别名 ‘ 类别名’ 同名,同类别的段在内存中依序连续存放。典型类别名如‘STACK’、‘CODE’和‘DATA’等,也允许用户使用其它类别名。若缺省‘类别名’,则表明该段类别为空。 模块2: STACK SEGMENT STACK DW 30 DUP(?) STACK ENDS DATA SEGMENT COMMON …… DATA ENDS CODE SEGMENT PUBLIC …… CODE ENDS END 汇编连接后,有 : . . . . . . . . . 模块1DATA 模块2代码 模块1代码 模块2 DATA 设模块2DATA 为模块1DATA STACK 50个字 2. 段寄存器说明伪指令 格式:ASSUME 段寄存器:段名[,段寄存器:段名,…] ① 指明程序中定义的段用哪一个段寄存器去寻址。 ② 并没有真正的将段地址装入段寄存器,段寄存器的初

文档评论(0)

花好月圆 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档