JPH05282134A - 分割ロードモジュール作成方式 - Google Patents

分割ロードモジュール作成方式

Info

Publication number
JPH05282134A
JPH05282134A JP10923392A JP10923392A JPH05282134A JP H05282134 A JPH05282134 A JP H05282134A JP 10923392 A JP10923392 A JP 10923392A JP 10923392 A JP10923392 A JP 10923392A JP H05282134 A JPH05282134 A JP H05282134A
Authority
JP
Japan
Prior art keywords
load module
load
address
module
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10923392A
Other languages
English (en)
Inventor
Ryoko Kuragami
良子 倉上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP10923392A priority Critical patent/JPH05282134A/ja
Publication of JPH05282134A publication Critical patent/JPH05282134A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 他のロードモジュールに影響を及ぼすことな
くロードモジュールを修正可能とし、ロードモジュール
の再作成に要する時間と労力とを軽減する。 【構成】 リンケージエディタ1は、オブジェクトモジ
ュールOMのリンク時に自ロードモジュールLM内で定
義した関数のロード先アドレスを設定した内部アドレス
テーブルと自ロードモジュールLM内で未解決のアドレ
スを解決するために必要な情報を設定した未解決アドレ
ステーブルとを持つロードモジュールLMを作成する。
ロードツール2は、ロードモジュールLMのロード時に
各ロードモジュールLMの内部アドレステーブルを参照
して未解決アドレステーブルに関数のロード先アドレス
を設定することにより、ロードモジュール間のアドレス
解決を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は分割ロードモジュール作
成方式に関し、特にロードモジュールを分割して作成す
る分割ロードモジュール作成方式に関する。
【0002】
【従来の技術】従来、この種の分割ロードモジュール作
成方式では、リンケージエディタが、オブジェクトモジ
ュールのリンク時に、ロードモジュール間のアドレス解
決に必要な情報を設定したファイル(オプショナルファ
イル)を参照して、オブジェクトモジュールをリンクさ
せてロードモジュールを作成していた。
【0003】例えば、図4(a)に示すように、オブジ
ェクトモジュールOM1〜OM4が関数A〜Dをそれぞ
れ定義しており、関数Aが内部で関数B,CおよびDを
使用しているためにオブジェクトモジュールOM1が内
部に定義関数B呼出し部(a),未定義関数C呼出し部
(b)および未定義関数Dアドレス取得部(c)を持っ
ているとすると、オブジェクトモジュールOM1とオブ
ジェクトモジュールOM2とをリンクさせてロードモジ
ュールLM1(図5参照)を作成し、オブジェクトモジ
ュールOM3とオブジェクトモジュールOM4とをリン
クさせてロードモジュールLM2(図5参照)を作成す
る場合、リンケージエディタ(図示せず)によってロー
ドモジュールLM1を構成するオブジェクトモジュール
OM1およびOM2間の定義関数B呼出し部(a)のア
ドレス解決が行われる。しかし、ロードモジュールLM
1およびLM2間のアドレス解決に関する情報が得られ
ないため、このままではロードモジュールLM1では未
定義関数C呼出し部(b)および未定義関数Dアドレス
取得部(c)のアドレス解決を行うことができない。
【0004】そこで、リンケージエディタは、図4
(b)に示すような他のロードモジュールLM2で定義
された関数名CおよびDとそのロード先アドレス“30
500”および“30700”とを記述したオプショナ
ルファイルOFを参照して、未定義関数C呼出し部
(b)および未定義関数Dアドレス取得部(c)の関数
名CおよびDをキーとしてアドレス解決に必要なロード
先アドレス“30500”および“30700”を取得
してロードモジュールLM1内の未定義関数C呼出し部
(b)および未定義関数Dアドレス取得部(c)に直接
設定することで、アドレス解決を行っていた。
【0005】このように、従来は、ロードモジュールを
分割して作成しようとした場合、ロードモジュール間の
アドレス解決に必要なアドレスは定義を行ったロードモ
ジュール内であらかじめ決定されていなければならなか
ったが、アドレスはロードモジュール内の関数のロード
先アドレスの変更やロードモジュールファイルの修正等
でロードモジュールのサイズが変わるたびに変化する。
【0006】例えば、デバッグ作業を例に考えると、誤
りを見つけてソースプログラムを変更するたびに作成し
直したロードモジュールから関数のロード先アドレスを
拾い出し、この関数を外部参照しているすべてのロード
モジュールのためのオプショナルファイルを修正してオ
ブジェクトモジュールを再リンクしてロードモジュール
を作成し直さなければならなかった。
【0007】
【発明が解決しようとする課題】上述した従来の分割ロ
ードモジュール作成方式では、ロードモジュール間のア
ドレス解決に必要なアドレスが変更されるたびに、アド
レス解決に必要な情報を設定したロードモジュールのオ
プショナルファイルを全て修正してオブジェクトモジュ
ールの再リンクによりロードモジュールを作成し直さな
ければならなかったので、ロードモジュールの再作成に
要する時間と労力とは大変なものになるという問題点が
あった。
【0008】また、オプショナルファイルの修正による
アドレス誤り等の単純ミスも生じやすいという問題点が
あった。
【0009】本発明の目的は、上述の点に鑑み、ロード
モジュール内に自ロードモジュール内で定義した関数の
ロード先アドレスを設定した内部アドレステーブルと自
ロードモジュール内で未解決なアドレスの解決に必要な
情報を設定した未解決アドレステーブルとを設け、ロー
ドモジュールのロード時に内部アドレステーブルおよび
未解決アドレステーブルを利用しながらロードモジュー
ル間のアドレス解決を自動的に行うようにした分割ロー
ドモジュール作成方式を提供することにある。
【0010】
【課題を解決するための手段】本発明の分割ロードモジ
ュール作成方式は、オブジェクトモジュールのリンク時
に自ロードモジュール内で定義した関数のロード先アド
レスを設定した内部アドレステーブルと自ロードモジュ
ール内で未解決のアドレスを解決するために必要な情報
を設定した未解決アドレステーブルとを持つロードモジ
ュールを作成するリンケージエディタと、前記ロードモ
ジュールのロード時に各ロードモジュールの内部アドレ
ステーブルを参照して未解決アドレステーブルに関数の
ロード先アドレスを設定するロードツールとを有する。
【0011】
【作用】本発明の分割ロードモジュール作成方式では、
リンケージエディタがオブジェクトモジュールのリンク
時に自ロードモジュール内で定義した関数のロード先ア
ドレスを設定した内部アドレステーブルと自ロードモジ
ュール内で未解決のアドレスを解決するために必要な情
報を設定した未解決アドレステーブルとを持つロードモ
ジュールを作成し、ロードツールがロードモジュールの
ロード時に各ロードモジュールの内部アドレステーブル
を参照して未解決アドレステーブルに関数のロード先ア
ドレスを設定する。
【0012】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
【0013】図1は、本発明の一実施例に係る分割ロー
ドモジュール作成方式の構成を示すブロック図である。
本実施例の分割ロードモジュール作成方式は、複数のオ
ブジェクトモジュールOMと、内部アドレステーブル作
成手段11および未解決アドレステーブル作成手段12
を含むリンケージエディタ1と、複数のロードモジュー
ルLMと、アドレス解決手段21を含むロードツール2
と、ロード済プログラム3とから、その主要部が構成さ
れている。
【0014】図2(a)および(b)は、本実施例の分
割ロードモジュール作成方式におけるオブジェクトモジ
ュールOM1〜OM4と、内部アドレステーブルT1お
よび未解決アドレステーブルT2を持つロードモジュー
ルLM1およびLM2とを例示する図である。図2
(a)において、オブジェクトモジュールOM1〜OM
4内では、それぞれ関数A〜Dが定義されている。オブ
ジェクトモジュールOM1内において、関数Aは処理の
中で関数BおよびCを呼び出し、関数Dのアドレス取得
を行っている。図2(b)は、オブジェクトモジュール
OM1およびOM2よりロードモジュールLM1を作成
し、オブジェクトモジュールOM3およびOM4よりロ
ードモジュールLM2を作成した結果を示す。
【0015】内部アドレステーブルT1は、関数名を設
定する関数名フィールドf1と、その関数のロード先ア
ドレスを設定するアドレスフィールドf2とからなる複
数のエントリで構成されている。ここでは、ロードモジ
ュールLM1およびLM2の作成時に関数のロード先ア
ドレスが指定されるものとし、内部アドレステーブルT
1に全て登録済みとする。
【0016】未解決アドレステーブルT2は、関数名フ
ィールドf3と、ジャンプ命令フィールドf4と、アド
レスフィールドf5とからなる複数のエントリで構成さ
れている。関数名フィールドf3とアドレスフィールド
f5とは、内部アドレステーブルT1のそれと同様であ
る。ジャンプ命令フィールドf4は、関数呼出しに使用
するフィールドで、他のロードモジュールLM2で定義
された関数(外部関数)へのジャンプ命令が設定され
る。よって、未解決アドレステーブルT2のジャンプ命
令フィールドf4およびアドレスフィールドf5は、ア
ドレスが未設定のままである。ロードモジュールLM2
では、他のロードモジュールLM1で定義された関数
(外部関数)を使用していないため、未解決アドレステ
ーブルT2が存在しない。
【0017】ロードモジュールLM1の処理部におい
て、定義関数B呼出し部(a)の飛び先アドレスには関
数Bのアドレス“10200”が設定され、未定義関数
C呼出し部(b)の飛び先アドレスには未解決アドレス
テーブルT2の関数名Cに対応するジャンプ命令フィー
ルドf4の先頭アドレスが設定され、未定義関数Dアド
レス取得部(c)では未解決アドレステーブルT2の関
数名Dに対応するアドレスフィールドf5を参照してい
る。
【0018】図3は、図2のロードモジュールLM1お
よびLM2のロードによってアドレス解決がどのように
行われているかを示す図である。
【0019】次に、このように構成された本実施例の分
割ロードモジュール作成方式の動作について説明する。
なお、ここでは、図2(a),(b)および図3に示し
た具体的に従って説明する。
【0020】まず、リンケージエディタ1は、オブジェ
クトモジュールOM1とオブジェクトモジュールOM2
とをリンクしてロードモジュールLM1を作成する。こ
の際、リンケージエディタ1は、内部アドレステーブル
作成手段11により、ロードモジュールLM1内に自ロ
ードモジュールLM1内で定義した関数AおよびBのロ
ード先アドレス“10100”および“10200”を
設定した内部アドレステーブルT1を作成するととも
に、未解決アドレステーブル作成手段12により、ロー
ドモジュールLM1内に自ロードモジュールLM1内で
未解決のアドレスを解決するために必要な情報として関
数名CおよびDを関数名フィールドf3に、ジャンプ命
令をジャンプ命令フィールドf4にそれぞれ設定した未
解決アドレステーブルT2を作成する。
【0021】次に、リンケージエディタ1は、オブジェ
クトモジュールOM3とオブジェクトモジュールOM4
とをリンクしてロードモジュールLM2を作成する。こ
の際、リンケージエディタ1は、内部アドレステーブル
作成手段11により、ロードモジュールLM2内に自ロ
ードモジュールLM2内で定義した関数CおよびDのロ
ード先アドレス“30500”および“30700”を
設定した内部アドレステーブルT1を作成する。なお、
この場合は、他のロードモジュールLM1で定義された
関数(外部関数)を使用していないため、未解決アドレ
ステーブル作成手段12による未解決アドレステーブル
T2の作成は行われない。
【0022】この後、ロードツール2は、ロードモジュ
ールLM1とロードモジュールLM2とをリンクして主
記憶装置(図示せず)にロード済プログラム3としてロ
ードする。この際、ロードツール2は、アドレス解決手
段21により、ロードモジュールLM1をロードする時
点で、他のロードモジュールLM2の内部アドレステー
ブルT1を参照して、未解決アドレステーブルT2の関
数名CおよびDをキーとして対応するロード先アドレス
“30500”および“30700”を取得して、未解
決アドレステーブルT2の関数名CおよびDに対応する
ジャンプ命令フィールドf4およびアドレスフィールド
F5にそれぞれ設定する。
【0023】この結果、ロード済プログラム3の実行時
には、図3に示すように、関数Cの呼出しは未解決アド
レステーブルT2の関数名Cに対応するジャンプ命令フ
ィールドf4を経由して起動が渡され、関数Dのアドレ
ス取得は未解決アドレステーブルT2の関数名Dに対応
するアドレスフィールドf5に設定されたアドレスが取
得される。
【0024】オブジェクトモジュールOM3および/ま
たはオブジェクトモジュールOM4の変更により、ロー
ドモジュールLM2を再リンクしてロードモジュールL
M1およびLM2の再ロードを行う場合、ロードツール
2によってロードモジュールLM1の未解決アドレステ
ーブルT2内のアドレスが自動的に更新されるため、ロ
ードモジュールLM1を更新する必要はない。
【0025】
【発明の効果】以上説明したように本発明は、ロードモ
ジュールの作成時にリンケージエディタを用いて内部ア
ドレステーブルと未解決アドレステーブルとを持つロー
ドモジュールを作成し、ロードモジュールのロード時に
ロードツールを用いてロードモジュール内のアドレス未
解決部を自動的に解決するようにしたことにより、ロー
ドモジュール間のアドレス解決は未解決アドレステーブ
ルのみを介して行われるため、他のロードモジュールの
変更によるアドレス変更の影響が未解決アドレステーブ
ルにのみ表れるが、これはロードツールが自動的に解決
してくれるので、ロードモジュール間のアドレスを意識
せずにロードモジュールが効率良く作成できるととも
に、他のロードモジュールに大きな影響を及ぼすことな
くプログラムの修正ができ、ロードモジュールの再作成
に要する時間と労力とを軽減することができるという効
果がある。
【0026】また、従来のようにオプショナルファイル
を使用しなくてすむので、オプショナルファイルの修正
によるアドレス誤り等の単純ミスが生じなくなるという
効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例に係る分割ロードモジュール
作成方式の構成を示すブロック図である。
【図2】本実施例の分割ロードモジュール作成方式が適
用されたオブジェクトモジュールおよびロードモジュー
ルの内容の一例を示す図である。
【図3】図2のロードモジュールのロードによってアド
レス解決がどのように行われるかを示す図である。
【図4】従来の分割ロードモジュール作成方式における
オブジェクトモジュールおよびオプショナルファイルの
内容を例示する図である。
【図5】従来の分割ロードモジュール作成方式における
ロードモジュールの内容を例示する図である。
【符号の説明】
1 リンケージエディタ 2 ロードモジュール 3 ロード済プログラム 11 内部アドレステーブル作成手段 12 未解決アドレステーブル作成手段 21 アドレス解決手段 f1 関数名フィールド f2 アドレスフィールド f3 関数名フィールド f4 ジャンプ命令フィールド f5 アドレスフィールド LM,LM1,LM2 ロードモジュール OM,OM1,OM2,OM3,OM4 オブジェクト
モジュール T1 内部アドレステーブル T2 未解決アドレステーブル

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 オブジェクトモジュールのリンク時に自
    ロードモジュール内で定義した関数のロード先アドレス
    を設定した内部アドレステーブルと自ロードモジュール
    内で未解決のアドレスを解決するために必要な情報を設
    定した未解決アドレステーブルとを持つロードモジュー
    ルを作成するリンケージエディタと、 前記ロードモジュールのロード時に各ロードモジュール
    の内部アドレステーブルを参照して未解決アドレステー
    ブルに関数のロード先アドレスを設定するロードツール
    とを有することを特徴とする分割ロードモジュール作成
    方式。
JP10923392A 1992-04-02 1992-04-02 分割ロードモジュール作成方式 Pending JPH05282134A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10923392A JPH05282134A (ja) 1992-04-02 1992-04-02 分割ロードモジュール作成方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10923392A JPH05282134A (ja) 1992-04-02 1992-04-02 分割ロードモジュール作成方式

Publications (1)

Publication Number Publication Date
JPH05282134A true JPH05282134A (ja) 1993-10-29

Family

ID=14504994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10923392A Pending JPH05282134A (ja) 1992-04-02 1992-04-02 分割ロードモジュール作成方式

Country Status (1)

Country Link
JP (1) JPH05282134A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1984002996A1 (fr) * 1983-01-28 1984-08-02 Sony Corp Dispositif d'affichage
JP2017016517A (ja) * 2015-07-03 2017-01-19 日本電気株式会社 情報処理システム、情報処理方法、及び、プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1984002996A1 (fr) * 1983-01-28 1984-08-02 Sony Corp Dispositif d'affichage
JP2017016517A (ja) * 2015-07-03 2017-01-19 日本電気株式会社 情報処理システム、情報処理方法、及び、プログラム

Similar Documents

Publication Publication Date Title
JPH1115689A (ja) ソフトウェアのデバッグ方法及びデバッグ・プログラムを記録した記録媒体
JPH05282134A (ja) 分割ロードモジュール作成方式
JP2000035882A (ja) 関数呼び出しの手順を動的に変更する方法
JP2500736B2 (ja) Ipl処理装置
JPH05113818A (ja) 多重プログラム機能を有する数値制御装置
JP3079228B2 (ja) 基本プログラム実行方法
JPH0390931A (ja) Rom化プログラムの生成方法
JPH04117523A (ja) プログラム編集装置
JPS62257560A (ja) 主記憶内容の退避方式
JPH02148220A (ja) プログラムの選択複写方式
JPH04282724A (ja) プログラム間のアドレス解決方式
JPS61147335A (ja) ジヨブのパラメ−タ登録方式
JPH0283621A (ja) 制御ドライバ
JPH0675757A (ja) 仮想空間常駐プログラムのリンク方式
JPH01236323A (ja) 共有ライブラリ方式
JPH06266539A (ja) デバッグ用ロードモジュールの再作成に好適なリンク装置およびリンク方法
JPH01149130A (ja) プログラム起動高速化方式
JPH05216634A (ja) ロードモジュール構成方法
JPS63228341A (ja) プログラム構文チエツク方式
JPS63285647A (ja) 出力フアイル名の作成方式
JPH0511983A (ja) 他言語プログラム間インタフエースの整合性検査と自動修復方式
JPH0439728A (ja) プログラム処理方法
JPH02130637A (ja) ソースコード翻訳方式
JPH03113633A (ja) システムジェネレーションミス防止方式
KR20000039214A (ko) 코드 분할 다중 접속 시스템에서의 블록 로딩방법