d. MEMORY方式: 表示该段应定位在所有其他段的上面, 若有多个段选用 MEMORY,则除第一个之外, 其余段均作为 COMMON处理。 e. AT: 表示该段按绝对地址定位,其段地址即 为其后表达式的值,位移量为0
d. MEMORY方式: 表示该段应定位在所有其他段的上面, 若有多个段选用MEMORY,则除第一个之外, 其余段均作为COMMON处理。 e. AT: 表示该段按绝对地址定位,其段地址即 为其后表达式的值,位移量为0
f.缺省方式: 若定义一个段时不指定上述任何一种方式, 则该段与其他模块的段没有任何关系,独立定 义。 例:有A,B;C,A,B;A,C共7个段是3个 模块中的段,用P,C,S分别代表 PUBLIC COMMON或 STACK。组合成4个新段(见 下图),新段的长度为被组合在一起的各段 长度之和(用 PUBLIC和 STACK方式时), 或是各段中最长段的长度( COMMON方式)
若定义一个段时不指定上述任何一种方式, 则该段与其他模块的段没有任何关系,独立定 义。 例:有A,B;C,A,B;A,C共7个段是3个 模块中的段,用P,C,S分别代表PUBLIC, COMMON或STACK。组合成4个新段(见 下图),新段的长度为被组合在一起的各段 长度之和(用PUBLIC和STACK方式时), 或是各段中最长段的长度(COMMON方式)。 f. 缺省方式:
A(P A P 1模块1 B(C)一 C C(S) B 模块2〈A(P) B(C) A 模块3 D C(S) LINK 连接程序的组合处理示意图
A (P) B (C) C (S) A (P) B (C) A C (S) 模块1 模块2 模块3 LINK P C S A B C D 连接程序的组合处理示意图
(4)类别名 是一个用单引号括起来的字符串,LINK 程序把类别名相同的所有段放在连续的存储区 域内,先出现的在前,后出现的在后。 例: A SEGMENT“FAT B SEGMENT“BAZ C SEGMENT“BAZ D SEGMENT‘0U AEBCD E SEGMENT“FAT LINK处理前 LINK处理后
(4) 类别名 是一个用单引号括起来的字符串,LINK 程序把类别名相同的所有段放在连续的存储区 域内,先出现的在前,后出现的在后。 例: A SEGMENT ‘FAT’ A B SEGMENT ‘BAZ’ E C SEGMENT ‘BAZ’ B D SEGMENT ‘ZOU’ C E SEGMENT ‘FAT’ D LINK 处理前 LINK 处理后
2 GROUP伪指令 格式:[组名] GROUP[段名[, 功能:用来把模块中若干不同名的段集合 成一个组,使其装入同一个物理段 中,组内各段之间的跳转可视为段 内跳转。 注:组名与段名是一样的取名规则,是代 表该组的段地址,格式中的段名也可 用表达式SEG变量或SEG标号
2. GROUP伪指令 格式:[组名] GROUP [段名] [,…] 功能:用来把模块中若干不同名的段集合 成一个组,使其装入同一个物理段 中,组内各段之间的跳转可视为段 内跳转。 注:组名与段名是一样的取名规则,是代 表该组的段地址,格式中的段名也可 用表达式SEG[变量]或SEG[标号]