你现在位置:首页>技术论文>电气常识>理论学习>正文
公共目标文件格式-COFF
日期:2008-4-2 16:00:57 来源:本站整理  
点击: 作者:未知
点击【】放大字体.
公共目标文件格式-COFF
WWW_P※LCJS_COM-PLC-)技.术_网

目的:增强代码得可读性和可移植性。
WWW_PLCJS@_COM%-PLC-技.术_网

块SECTION:目标文件中最小得单元就为块,它最终在存储器影响中占据连续空间得一块代码或数据。
WW.W_PLC※JS_C,OM-PL,C-技.术_网

默认的情况下,coff文件包含三个块:
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

.text:通常包含可执行代码
W1WW_P4LCJS_COM-PLC-技.术_网

.data:通常包含已初始化的数据
WWW_PLC※JS_COM-PmLC-技.术_网

.bss:通常为未初始化的数据保留空间
WWW_P※LCJS_COM-PLC-)技.术_网

当然汇编器和链接器允许自己建立和链接自定义的块,这些块与以上的三个块类似。所有的块分为两大类
WWW_P※LCJS_CO※M-PLC-技-.术_网

已初始化块和未初始化块。已初始化的块包含程序代码和数据,.text .data  .sect  .asect汇编命令所
W1WW_P4LCJS_COM-PLC-技.术_网

创建的块都属于这一类。未初始化的块是为了未初始化数据在存储器映像图中保留空间,.bss  .usect属于这一类。
WWcW_PLCJS_COM-PLC-技.术_网

汇编器对块的处理:确定汇编语言程序的各个部分属于那个特定的块。有六个命令来完成这种功能,即:.bss, .usect(创建未初始化的块).text, .data, .sect, .asect(创建已初始化的块).
WWW.PLCJS.COM——可编程控制器技术门户

1. 未初始化的块
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

通常主要用来在存储器中保留空间,他们通常分配到RAM中。这些块在目标文件中没有实际的内容,只是保留空间而已。程序在运行时利用这些空间来建立和存储变量。
W1WW_P4LCJS_COM-PLC-技.术_网

.bss命令在.bss块中保留空间,.usect命令在自定义的块中保留空间。如
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

.bss 符号,字数
——可——编——程——控-制-器-技——术——门——户

符号 ,.usect “块名”,字数
WWcW_PLCJS_COM-PLC-技.术_网

其中,符号指向有.bss或.usect命令保留的第一个字,它对应于变量保留空间的变量名,可以在其它任何块中被访问,也可以用.global命令定义为全局符号。字数表示空间的大小。
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

2. 已初始化的块
WWW_PL※CJS_COM-PLC-技.术_网

它包含可执行代码或者已初始化数据。.text, .data, .sect, .asect(创建已初始化的块).这四个命令的用法如下:
——可——编——程——控-制-器-技——术——门——户

.text
WWW.PLCJS.COM——可编程控制器技术门户

.data
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

.sect “块名”
W1WW_P4LCJS_COM-PLC-技.术_网

.asect “块名”,地址
WWcW_PLCJS_COM-PLC-技.术_网

前两个建立的块名就是.text 和.data 而后边两个命令建立的块名是自定义的块,其中.asect具有绝对地址,不推荐使用。
WW.W_PLC※JS_C,OM-PL,C-技.术_网

3.两种命令的比较
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

汇编器遇到.bss, .usect时,并不结束当前块开始一个新块,它们只是暂时的离开当前块。
WWW_P※LCJS_COM-PLC-)技.术_网

汇编器遇到.text .data  .sect  .asect时,它立即停止把数据或者代码汇编到当前块中,且开始将随后的代码或者数据汇编到相应的块中,直到别的.text .data  .sect  .asect中的一个。比如:当汇编器第一次遇到一个.data命令时,.data块时空的,.data后的语句被汇编到.data块中,直到遇到一个.text .sect  .asect。如果汇编器在后边又遇到了.data命令,则将这些.data后边的语句加到已在.data块中语句的后边,这样建立的唯一的.data块可以在存储器中分配一个连续的空间。
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

4.自定义的块
WWcW_PLCJS_COM-PLC-技.术_网

用命令.usect建立的块的用法类似于.bss块,它在RAM中为变量保留空间;
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

.sect .asect建立包含代码或者数据的块,用法类似于.text和.data块。.sect建立的块是可以重定位的,而.asect命令建立具有绝对地址的块.
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

符号 ,.usect “块名”,字数
P.L.C.技.术.网——可编程控制器技术门户

.sect “块名”
WWW.PLCJS.COM——可编程控制器技术门户

.asect “块名”,地址
WW.W_PLCJS_COM-PLC-技.术_网

链接器对块的处理
WWW_PLCJS@_COM%-PLC-技.术_网

作用:将COFF目标文件中的块用来建立程序块或者数据块,它将输入块组合起来,以建立可执行的的COFF输出模块。其次,链接器为输出块选择存储器地址。它用两个命令完成上述功能:MEMORY, SECTONS。 MEMORY命令定义目标系统的存储器,程序员可以定义每一块存储器,指定起始地址和长度。SECTIONS命令告诉链接器如何组合输入块以及在存储器何处存放输出块。若不用这两个命令,则链接器使用默认的分配算法。若使用这两个命令,则在.cmd中确定。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

1. 链接器的默认分配算法
P.L.C.技.术.网——可编程控制器技术门户

(1)假设存储器的起始地址为0
WWW.PLCJS.COM——可编程控制器技术门户

(2)假定有2的32次方字的存储器可以用来分配目标代码
WWW_PLC※JS_COM-PmLC-技.术_网

(3)将.text分配到起始地址为0的程序存储器中
WW.W_PLCJS_COM-PLC-技.术_网

(4)将.data分配到紧接着.text的程序存储器中
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

(5)将.bss分配到紧接着.data的数据存储器中。
——可——编——程——控-制-器-技——术——门——户

(6)将自定义的块分配到紧接着.bss的存储器中,若自定义的块不止一个,则按照自定义块字输入文件中的先后顺序存放。
W1WW_P4LCJS_COM-PLC-技.术_网

如果,在默认分配时有多个目标文件,每个文件中都包含.text .data ,.bss和自定义的块,则链接器中首先将各个文件中具有相同名字的块组合起来,形成相应的输出块,然后再接上述算法分配存储器。
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

2. 在存储器映像图中分配块:使用MEMORY SECTIONS定义存储器以及分配块至存储器中
WW.W_PLCJS_COM-PLC-技.术_网

MEMORY
——可——编——程——控-制-器-技——术——门——户

{
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

    PAGE 0: PROG: origin = 1a00h, length = 2580h
WWW_PLCJS@_COM%-PLC-技.术_网

    PAGE 1: DATA: origin = 0200h, length = 1800h
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

}
WWW_PLCJS_COM-PLC-技.术_网

SECTIONS
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

{
WWW_P※LCJS_CO※M-PLC-技-.术_网

    .text > PROG PAGE 0
W1WW_P4LCJS_COM-PLC-技.术_网

    .cinit > PROG PAGE 0
WWW_PLC※JS_COM-PmLC-技.术_网

    .switch > PROG PAGE 0
W1WW_P4LCJS_COM-PLC-技.术_网

    .vect > 3f80h PAGE 0
plcjs.技.术_网

WWW_PLC※JS_COM-PmLC-技.术_网

    .data > DATA PAGE 1
WWW_PLC※JS_COM-PmLC-技.术_网

    .bss > DATA PAGE 1
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

    .const > DATA PAGE 1
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

    .sysmem > DATA PAGE 1
WWW_PLCJS_COM-PLC-技.术_网

    .stack > DATA PAGE 1

本新闻共2页,当前在第11 2  
WWW_P※LCJS_COM-PLC-)技.术_网

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行