- 1
- 0
- 约1.82万字
- 约 78页
- 2017-06-05 发布于湖北
- 举报
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 段寄存器:段名[,段寄存器:段名,…] ① 指明程序中定义的段用哪一个段寄存器去寻址。 ② 并没有真正的将段地址装入段寄存器,段寄存器的初
您可能关注的文档
最近下载
- 制造业信息化战略规划实施与优化-PDM.docx VIP
- 那智不二越机器人flexgui toolbox操作说明书.pdf VIP
- 智慧工厂-智慧工厂解决方案.docx VIP
- 高中化学解题方法归纳:和量法.doc VIP
- 译林牛津新版高中英语(必修1-3)单词表.pdf VIP
- 包装有限公司分切机安全风险分级清单.docx VIP
- 重庆市西南大学附属中学2025届高三下学期二诊模拟考试物理试卷 含解析.docx VIP
- 【高中英语】《星火英语同步词汇》抗遗忘速记手册.docx VIP
- 成都市锦江区2026届初三一诊(暨期末考试)数学试卷(含答案).docx
- 三坐标 培训教程.pptx VIP
原创力文档

文档评论(0)