链接器的使用.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《链接器的使用.ppt》由会员分享,可在线阅读,更多相关《链接器的使用.ppt(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于链接器的使用现在学习的是第1页,共58页第第第第第第4 4 4 4 4 4章章章章章章 汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具4.5.14.5.1 链接器的运行链接器的运行 1.1.运行链接程序运行链接程序运行链接程序运行链接程序 C54xC54xC54xC54x链接器的运行命令:链接器的运行命令:lnk500lnk500 -options-options filename 1 filename n filename 1 filename n lnk500:lnk500:运行链接器命令。运行链接器命令。运行链
2、接器命令。运行链接器命令。-options:-options:链接命令选项。可以出现在命令行或链接命令文链接命令选项。可以出现在命令行或链接命令文链接命令选项。可以出现在命令行或链接命令文链接命令选项。可以出现在命令行或链接命令文 件的任何位置。件的任何位置。件的任何位置。件的任何位置。filenames:filenames:文件名。可以是目标文件、链接命令文件或文文件名。可以是目标文件、链接命令文件或文文件名。可以是目标文件、链接命令文件或文文件名。可以是目标文件、链接命令文件或文 件库。所有文件扩展名的默认值为件库。所有文件扩展名的默认值为件库。所有文件扩展名的默认值为件库。所有文件扩展名
3、的默认值为.obj.obj。现在学习的是第2页,共58页第第第第第第4 4 4 4 4 4章章章章章章 汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具1.1.1.1.运行链接程序运行链接程序 C54xC54xC54xC54x链接器的运行,有三种方法:链接器的运行,有三种方法:(1)(1)(1)(1)键入命令:键入命令:键入命令:键入命令:lnk500lnk500 链接器会提示如下信息:链接器会提示如下信息:链接器会提示如下信息:链接器会提示如下信息:Command filesCommand files:Object fi
4、les Object files.objobj:Output Files aOutput Files a.outout:OptionsOptions:(要求键入一个或多个命令文件要求键入一个或多个命令文件要求键入一个或多个命令文件要求键入一个或多个命令文件)(要求要求要求要求键键键键入一个或多个需要入一个或多个需要入一个或多个需要入一个或多个需要链链链链接的目接的目接的目接的目标标标标文件文件文件文件)(要求键入一个链接器所生成的输出文件名要求键入一个链接器所生成的输出文件名要求键入一个链接器所生成的输出文件名要求键入一个链接器所生成的输出文件名)(要求附加一个链接选项要求附加一个链接选项要求
5、附加一个链接选项要求附加一个链接选项 )现在学习的是第3页,共58页第第第第第第4 4 4 4 4 4章章章章章章 汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具1.1.1.1.运行链接程序运行链接程序 (2)(2)(2)(2)键入命令:键入命令:键入命令:键入命令:lnk500lnk500 file1.obj file2.obj -o link.outlink.out 在命令行中指定选项和文件名。在命令行中指定选项和文件名。在命令行中指定选项和文件名。在命令行中指定选项和文件名。目标文件:目标文件:file1.obj、
6、file2.objfile2.obj 命令选项:命令选项:命令选项:命令选项:-o 输出文件:输出文件:输出文件:输出文件:link.out 将两个目标文件进行链接,生成一个可执行的输出将两个目标文件进行链接,生成一个可执行的输出文件文件link.outlink.out。现在学习的是第4页,共58页第第第第第第4 4 4 4 4 4章章章章章章 汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具1.1.运行链接程序运行链接程序 (3)(3)(3)(3)键入命令:键入命令:lnk500lnk500 linker.cmdlink
7、er.cmd linker.cmd:linker.cmd:链接命令文件。链接命令文件。链接命令文件。链接命令文件。在执行上述命令之前,需将链接的目标文件、链接在执行上述命令之前,需将链接的目标文件、链接命令选项以及存储器配置要求等编写到命令选项以及存储器配置要求等编写到链接命令文件链接命令文件链接命令文件链接命令文件linker.cmdcmd中。中。例如:希望完成第二种命令的链接,在链接命令文件例如:希望完成第二种命令的链接,在链接命令文件例如:希望完成第二种命令的链接,在链接命令文件例如:希望完成第二种命令的链接,在链接命令文件中,中,应包含如下内容:应包含如下内容:file1.objfil
8、e1.obj file2.obj file2.obj file2.obj file2.obj -o link.out -o link.out 现在学习的是第5页,共58页第第第第第第4 4 4 4 4 4章章章章章章 汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具4.5.14.5.14.5.14.5.1 链接器的运行链接器的运行链接器的运行链接器的运行 2.2.链接命令选项链接命令选项链接命令选项链接命令选项 在链接时,连接器通过链接命令选项控制链接操作。在链接时,连接器通过链接命令选项控制链接操作。在链接时,连接器通过
9、链接命令选项控制链接操作。在链接时,连接器通过链接命令选项控制链接操作。链接命令选项可以放在命令行或命令文件中,所有链接命令选项可以放在命令行或命令文件中,所有链接命令选项可以放在命令行或命令文件中,所有链接命令选项可以放在命令行或命令文件中,所有选项前面必须加一短划线选项前面必须加一短划线选项前面必须加一短划线选项前面必须加一短划线“-”。除。除。除。除-l l l l和和-i i选项外,其选项外,其他选项的先后顺序并不重要。他选项的先后顺序并不重要。选项之间可以用空格分开。最常用选项为选项之间可以用空格分开。最常用选项为-mm和和-o o,分别表示输出的地址分,分别表示输出的地址分,分别表
10、示输出的地址分,分别表示输出的地址分配表映像文件名和输出可执行配表映像文件名和输出可执行配表映像文件名和输出可执行配表映像文件名和输出可执行文件名文件名文件名文件名。现在学习的是第6页,共58页第第第第第第4 4 4 4 4 4章章章章章章 汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具2.2.链接命令选项链接命令选项链接命令选项链接命令选项 链接命令选项链接命令选项选选 项项含含 义义 -a 生成一个绝对地址的、可执行的输出模块。所建立的绝生成一个绝对地址的、可执行的输出模块。所建立的绝 对地址输出文件中不包含重新定位
11、信息。如果既不用对地址输出文件中不包含重新定位信息。如果既不用-a 选项,也不用选项,也不用-r选项,链接器就像规定选项,链接器就像规定-a选项那样处理。选项那样处理。-ar 生成一个可重新定位、可执行的目标模块。这里采用了生成一个可重新定位、可执行的目标模块。这里采用了 -a和和-r两个选项两个选项(可以分开写成可以分开写成-a-r,也可以连在一起,也可以连在一起 写作写作-ar),与,与-a选项相比,选项相比,-ar选项还在输出文件中保留选项还在输出文件中保留 有重新定位信息。有重新定位信息。-e global_symbol 定义一个全局符号,这个符号所对应的程序存储器地址,定义一个全局符
12、号,这个符号所对应的程序存储器地址,就是使用开发工具调试这个链接后的可执行文件时程序就是使用开发工具调试这个链接后的可执行文件时程序 开始执行时的地址开始执行时的地址(称为入口地址称为入口地址)。当加载器将一个程。当加载器将一个程 序加载到目标存储器时,程序计数器序加载到目标存储器时,程序计数器(PC)被初始化到入被初始化到入 口地址,然后从这个地址开始执行程序。口地址,然后从这个地址开始执行程序。现在学习的是第7页,共58页第第第第第第4 4 4 4 4 4章章章章章章 汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具2
13、.2.链接命令选项链接命令选项链接命令选项链接命令选项 链接命令选项链接命令选项选选 项项含含 义义-f fill_vale 对输出模块各段之间的空单元设置一个对输出模块各段之间的空单元设置一个1616位数值位数值 (fill_value),(fill_value),如果不用如果不用-f-f选项,则这些空单元都置选项,则这些空单元都置0 0。-i dir 更改搜索文档库算法,先到更改搜索文档库算法,先到dirdir(目录)中搜索。此选项(目录)中搜索。此选项 必须出现在必须出现在-l-l选项之前。选项之前。-l filename 命名一个文档库文件作为链接器的输入文件;命名一个文档库文件作为链
14、接器的输入文件;filenamefilename 为文档库的某个文件名。此选项必须出现在为文档库的某个文件名。此选项必须出现在-i-i选项之后。选项之后。-m filename 生成一个生成一个.map映像文件,映像文件,filename是映像文件的文件名。是映像文件的文件名。.map文件中说明存储器配置、输入、输出段布局以及外文件中说明存储器配置、输入、输出段布局以及外 部符号重定位之后的地址等。部符号重定位之后的地址等。-o filename 对可执行输出模块命名。如果默认,则此文件名为对可执行输出模块命名。如果默认,则此文件名为a.out。-r 生成一个可重新定位的输出模块。当利用生成一
15、个可重新定位的输出模块。当利用-r选项且不用选项且不用 -a选项时,链接器生成一个不可执行的文件。选项时,链接器生成一个不可执行的文件。现在学习的是第8页,共58页第第第第第第4 4 4 4 4 4章章章章章章 汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具4.5.24.5.2 链接器命令文件的编写与使用链接器命令文件的编写与使用链接器命令文件的编写与使用链接器命令文件的编写与使用 链接命令文件用来为链接器提供链接信息,可将链接操链接命令文件用来为链接器提供链接信息,可将链接操链接命令文件用来为链接器提供链接信息,可将链
16、接操链接命令文件用来为链接器提供链接信息,可将链接操作所需的信息放在一个文件中,这在多次使用同样的链接信作所需的信息放在一个文件中,这在多次使用同样的链接信作所需的信息放在一个文件中,这在多次使用同样的链接信作所需的信息放在一个文件中,这在多次使用同样的链接信息时,可以方便地调用。息时,可以方便地调用。息时,可以方便地调用。息时,可以方便地调用。在链接命令文件中,可使用在链接命令文件中,可使用在链接命令文件中,可使用在链接命令文件中,可使用MEMORYMEMORYMEMORYMEMORY和和SECTIONSSECTIONSSECTIONSSECTIONS伪指令伪指令伪指令伪指令,为实际应用指定
17、存储器结构和地址的映射。为实际应用指定存储器结构和地址的映射。为实际应用指定存储器结构和地址的映射。为实际应用指定存储器结构和地址的映射。MEMORYMEMORYMEMORYMEMORY用来指定目标存储器结构。用来指定目标存储器结构。用来指定目标存储器结构。用来指定目标存储器结构。SECTIONSSECTIONSSECTIONSSECTIONS用来控制段的构成与地址分配。用来控制段的构成与地址分配。现在学习的是第9页,共58页第第第第第第4 4 4 4 4 4章章章章章章 汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具4
18、.5.24.5.24.5.24.5.2 链接器命令文件的编写与使用链接器命令文件的编写与使用 链接链接链接链接命令文件为命令文件为ASCASC文件,可包含以下内容:文件,可包含以下内容:(1)1)输入文件名,用来指定目标文件、存档库或其输入文件名,用来指定目标文件、存档库或其他命令文件。他命令文件。(2)(2)链接器选项,它们在命令文件中的使用方法与在链接器选项,它们在命令文件中的使用方法与在命令行中相同。命令行中相同。(3)(3)MEMORYMEMORY和和和和SECTIONSSECTIONSSECTIONSSECTIONS链接伪指令,用来指定目标存链接伪指令,用来指定目标存链接伪指令,用来
19、指定目标存链接伪指令,用来指定目标存储器结构和地址分配。储器结构和地址分配。储器结构和地址分配。储器结构和地址分配。(4)(4)(4)(4)赋值说明,用于给全局符号定义和赋值。赋值说明,用于给全局符号定义和赋值。赋值说明,用于给全局符号定义和赋值。赋值说明,用于给全局符号定义和赋值。现在学习的是第10页,共58页第第第第第第4 4 4 4 4 4章章章章章章 汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具 例如:可根据给出链接命令,编写完成该命令操作例如:可根据给出链接命令,编写完成该命令操作的链接器命令文件的链接器命令
20、文件linklinklinklink.cmdcmdcmdcmd。lnk500 a.obj b.obj lnk500 a.obj b.obj -m prog.map m prog.map -o prog.outo prog.out 该命令是将两个目标文件该命令是将两个目标文件该命令是将两个目标文件该命令是将两个目标文件a a a a.objobj和和和和b b.objobjobjobj进行链接进行链接,生成生成一个映像文件一个映像文件progprogprogprog.mapmapmapmap和一个可执行的输出文件和一个可执行的输出文件和一个可执行的输出文件和一个可执行的输出文件progprog.
21、outoutoutout。链接命令文件的内容如下:链接命令文件的内容如下:链接命令文件的内容如下:链接命令文件的内容如下:a.obj a.obj a.obj a.obj /*/*/*/*第一个输入文件名第一个输入文件名第一个输入文件名第一个输入文件名*/b.obj b.obj b.obj b.obj /*/*/*/*第二个输入文件名第二个输入文件名第二个输入文件名第二个输入文件名*/-m prog -m prog -m prog -m prog.map map map map /*/*/*/*指定指定指定指定mapmapmapmap文件的选项文件的选项文件的选项文件的选项*/-o prog -
22、o prog.out out out out /*/*/*/*指定输出文件的选项指定输出文件的选项指定输出文件的选项指定输出文件的选项*/现在学习的是第11页,共58页第第第第第第4 4 4 4 4 4章章章章章章 汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具 【例例例例4.5.14.5.14.5.14.5.1】链接器命令文件举例。链接器命令文件举例。链接器命令文件举例。链接器命令文件举例。a a a a.obj bobj bobj bobj b.obj obj obj obj /*/*/*/*输入文件名输入文件名输入
23、文件名输入文件名 */-o prog -o prog -o prog -o prog.out out out out /*/*/*/*指定输出文件的选项指定输出文件的选项指定输出文件的选项指定输出文件的选项*/-m prog -m prog -m prog -m prog.map map map map /*/*/*/*指定指定指定指定mapmapmapmap文件的选项文件的选项文件的选项文件的选项*/MEMORY MEMORY MEMORY MEMORY /*MEMORY/*MEMORY/*MEMORY/*MEMORY 伪指令伪指令伪指令伪指令*/PAGE 0 PAGE 0 PAGE 0 P
24、AGE 0:ROMROMROMROM:origin=1000h,length=0100horigin=1000h,length=0100horigin=1000h,length=0100horigin=1000h,length=0100h PAGE 1 PAGE 1 PAGE 1 PAGE 1:RAMRAMRAMRAM:origin=0100h,length=0100h origin=0100h,length=0100h origin=0100h,length=0100h origin=0100h,length=0100h SECTIONS SECTIONS SECTIONS SECTIONS
25、 /*SECTIONS/*SECTIONS/*SECTIONS/*SECTIONS伪指令伪指令伪指令伪指令*/.text text text text :ROM ROM ROM ROM .data data data data :ROM ROM ROM ROM .bss bss bss bss :RAM RAM RAM RAM 现在学习的是第12页,共58页第第第第第第4 4 4 4 4 4章章章章章章 汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具汇编语言程序开发工具注意:注意:注意:注意:在命令文件中,不能采用下列符号作为段名或符号名:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 链接 使用
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内