351 MS-DOS连结器352 SunOS连结器353 Cray MPP连结器.PPT

351 MS-DOS连结器352 SunOS连结器353 Cray MPP连结器.PPT

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
351 MS-DOS连结器352 SunOS连结器353 Cray MPP连结器

採用修正記錄(Modification records)來處理重定址,以使連結和重定址的功能皆是運用相同的機制。 連結載入器的主要資料結構是一個ESTAB的外部符號表,用於儲存控制段之外部符號的名稱和位址。 控制區段 符號名稱 位址 長度 PROGA LISTA ENDA 4000 4040 4054 0063 PROGB LISTB ENDB 4063 40C3 40D3 007F PROGC LISTC ENDC 40E2 4112 4124 0051 3.3.1節將討論外部引用之「自動化函式庫」(automatic library)的搜尋程序 3.3.2節展示一些載入和連結時的共同選項 許多連結載入器可以自動地將「副程式函式庫」(subroutine library)中的程式,合併到載入的程式當中。 支援「自動函式庫搜尋」的連結載入器必須在其輸入檔案中,追蹤並未定義的外部符號 一個簡單的方式,是將「引用記錄」(Refer record)中並未出現於符號表的符號,登錄到符號表(ESTAB)中,並註記這些是尚未定義的符號。當遇到其定義時,則在符號表中填入該符號的位址。 在一些系統上,「工作控制語言」(job control language)的選項是由作業系統來處理。 INCLUDE program-name(library-name) 指示載入器從函式庫中讀取所選定的目的程式 DELETE csect-name 可以指示載入器,由載入的程式中刪除特定名稱的控制區段。 CHANGE name 1, name2 可以將目的程式中的外部符號,由name1更改為name2。 LIBRARY MYLIB 通常在「標準系統函式庫」之前,會進行此類「使用者指定的函式庫」的搜尋。 3.4.1節將討論「連結編輯器」,它在許多電腦系統中可以取代或結合「連結載入器」。 3.4.2節介紹「動態連結」,它是運用於首次呼叫副程式時,利用作業系統的機制來載入和連結副程式。 3.4.3節將討論「開機載入器」 執行所有的連結和重定址的動作,包含自動函式庫的搜尋(如有指定),和載入已連結的程式到記憶體中以供執行。 如果一個程式需要執行許多次,而不想每次都重新組譯時,使用「連結編輯器」可以降低所需進行的工作。 假如事前可以知道程式之載入的實際位址,「連結編輯器」就可以執行所有的重定址動作。 INCLUDE PLANNER(PROGLIB) DELETE PROJECT {DELETE 從現行的 PLANNER} INCLUDE PROJECT(NEWLIB) {INCLUDE 新版本) REPLACE PLANNER(PROGLIB) INCLUDE READR(FTNLIB) INCLUDE WRITER(FTNLIB) INCLUDE BLOCK(FTNLIB) INCLUDE DEBLOCK (FTNLIB) INCLUDE ENCODE(FTNLIB) INCLUDE DECODE(FTNLIB) . . . SAVE FTNIO(SUBLIB) 動態連結(dynamic linking)、動態載入(dynamic loading)或呼叫時載入(load on call) 延遲連結的功能,直到執行時間的方法:當副程式首次被呼叫時,才載入並且完成連結。 通常用於多個程式共享同一個副程式或函式庫的時候 在物件導向的系統中,動態連結經常用於引用一些軟體的物件。 當第一次載入程式時,可以明確指定絕對位址。通常這個程式是作業系統,它將佔用記憶體中的特定位址。 絕對載入器」是永遠常駐在唯讀記憶體裡(ROM)中。 利用一個內建的硬體機制(或一個非常短的ROM程式),讀取一些設備上固定長度的記錄,將其置於記憶體的固定位置。 3.5.1 MS-DOS連結器 3.5.2 SunOS連結器 3.5.3 Cray MPP連結器 大部分MS-DOS的編譯器(compiler)和組譯器(包含MASM)可以產生目的模組,它是不可執行的機器語言程式。 MS-DOS LINK是一種「連結編輯器」,它可以結合一個或多個目的模組,以產生一個的完整可執行程式。 THEADR記錄可以指出目的模組的名稱 PUBDFF記錄包含了一些定義於此目的模組之外部符號的列表 SEGDEF記錄描述目的模組中的一些區段 LEDATA記錄包含了由原始程式所轉譯的指令和資料 FIXUPP記錄是用於解決外部引用 第一階段所建構的符號表中,每個區段(使用LNAMES、SEGDEF和GRPDEF記錄)和每個外部符號(使用EXTDKF和PUBDEF記錄)都會有一個對應的位址。 在第二階段中,LINK會由目的模組中取出已轉譯的指令和資料,並在記憶體中建構一個可

您可能关注的文档

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档