汇編语言程序设计 2段的定义 SEGMENT.伪指令的完整的格式为 段名 SEGMENT[定位类型][组合类型][“类别] 段名ENDS 10.2.1定位类型 齐風霍讀盎娶覆京踅痿瞀粽炱聱畤給掂炱樊妞来翻霞醅緒建。 共有5种选 1.PAGE(页) 段的起始地址从页边界开始,也就是说必须为256的倍数,即该地址 的最后8位二进制位应为0。 2.PARA(节) 段的起始地址必须从段笾界开始,也就是说必须为16的倍数。即该 地址的最后4位二进制位应为0。 3.DW0RD(双享 地址餐禽址进额务界开始,也就是说些预为的倍数,即该 4.WORD(字) 地址长址进葡金开始,也就是说必须为偶数地址,即该 5.BYTE(字节) 段的起始地址从字节边界开始,也就是说可以从任意单元地址起 也就是说为下一个可用的字节地址开始。 当段定义中没有指定段的定位类型时,定位类型的缺省方式为PARA
汇编语言 程序设计 10.2 段的定义 SEGMENT伪指令的完整的格式为: 段名 SEGMENT [定位类型] [组合类型] [‘类别’] ┇ 段名 ENDS 10.2.1 定位类型 定位类型用于指定该段的段起始地址的特性,也称为定位属性或对 齐属性。连接程序连接目标文件时,根据定位类型来确定段的开始地址。 一共有5种选择。 1.PAGE(页) 段的起始地址从页边界开始,也就是说必须为256的倍数,即该地址 的最后8位二进制位应为0。 2.PARA(节) 段的起始地址必须从段边界开始,也就是说必须为16的倍数,即该 地址的最后4位二进制位应为0。 3.DWORD(双字) 段的起始地址必须从双字边界开始,也就是说必须为4的倍数,即该 地址的最低两位二进制位应为0。 4.WORD(字) 段的起始地址必须从字边界开始,也就是说必须为偶数地址,即该 地址的最低一位二进制位应为0。 5.BYTE(字节) 段的起始地址从字节边界开始,也就是说可以从任意单元地址起, 也就是说为下一个可用的字节地址开始。 当段定义中没有指定段的定位类型时,定位类型的缺省方式为PARA
汇編语言程序设计 10.2.2组合类型 组合类型也称为组合属性,组合类型标明本段与其他模块中 同名段的组合连接关系,是用于控制本段与其他模块中的同名 同类型段的组合连接方式,有五种可选的组合类型。 1. PUBLIC 连接程序将不同模块中的具有 PUBLIc属性的同名段连接在 起,形成一个新的段,公用一个段基址。 2. STACK STACK与 PLIBLIC的处理方式一样,只是连接后的段为堆栈段, 连接程序在连接过程中自动将新段的段基址送到堆栈段寄存器SS, 新段的长度送到堆栈指针寄存器SP。当堆栈段定义时没有说明为 STACK类型,就要在程序中用指令给堆栈段寄存器SS和堆栈指针 寄存器SP赋值,不然连接程序时就会产生警告信息。 3. COMMON COMMON类型会产生一个覆盖段。连接程序把该类型的同名段 指定相同的段地址.段的长度取决于最长的 COMMON段的长度
汇编语言 程序设计 10.2.2 组合类型 组合类型也称为组合属性,组合类型标明本段与其他模块中 同名段的组合连接关系,是用于控制本段与其他模块中的同名、 同类型段的组合连接方式,有五种可选的组合类型。 1.PUBLIC 连接程序将不同模块中的具有PUBLlC属性的同名段连接在一 起,形成一个新的段,公用一个段基址。 2.STACK STACK与PLIBLIC的处理方式一样,只是连接后的段为堆栈段, 连接程序在连接过程中自动将新段的段基址送到堆栈段寄存器SS, 新段的长度送到堆栈指针寄存器SP。当堆栈段定义时没有说明为 STACK类型,就要在程序中用指令给堆栈段寄存器SS和堆栈指针 寄存器 SP赋值,不然连接程序时就会产生警告信息。 3.COMMON COMMON类型会产生一个覆盖段,连接程序把该类型的同名段 指定相同的段地址,段的长度取决于最长的COMMON段的长度