JPH01128130A - オーバレイ領域の自動ローディング方式 - Google Patents

オーバレイ領域の自動ローディング方式

Info

Publication number
JPH01128130A
JPH01128130A JP62286850A JP28685087A JPH01128130A JP H01128130 A JPH01128130 A JP H01128130A JP 62286850 A JP62286850 A JP 62286850A JP 28685087 A JP28685087 A JP 28685087A JP H01128130 A JPH01128130 A JP H01128130A
Authority
JP
Japan
Prior art keywords
name
instruction
external
external name
overlay area
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
JP62286850A
Other languages
English (en)
Inventor
Yoichi Sato
洋一 佐藤
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 JP62286850A priority Critical patent/JPH01128130A/ja
Publication of JPH01128130A publication Critical patent/JPH01128130A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はオーバレイ領域の自動ローディング方式に関し
、特に電子計算機システムで実行されるプログラムがオ
ーバレイ構造を有しているときにオーバレイ領域(プロ
グラムのメモリ常駐部分以外の部分)を実行時に自動的
にメモリ上にロードするオーバレイ領域の自動ローディ
ング方式に関する。
〔従来の技術〕
従来、プログラムがオーバレイ領域に制御を移行する場
合やオーバレイ領域のデータを参照する場合には、制御
の移行やデータの参照に先立って、利用者がプログラム
中で意識してオーバレイ領域をメモリ上にロードするよ
うにし、その後にオーバレイ領域への制御の移行やオー
バレイ領域のデータの参照を行っていた。
〔発明が解決しようとする問題点〕
上述した従来のオーバレイ領域のローディング方式は、
利用者がプログラム中で意識してオーバレイ領域をメモ
リにロードするようにしなければならなかったので、利
用者がプログラムの構造。
オーバレイ領域名およびオーバレイ領域中に含まれてい
る外部入口名(外部手続き名)または外部データ名を明
白に記憶しておかなければならないという欠点がある。
また、利用者の原始プログラム中にオーバレイ領域名を
指定して明白に記述しておかなければならないという欠
点がある。
さらに、オーバレイ領域名を変更した場合には、原始プ
ログラム中のオーバレイ領域名を変更後に再コンパイル
して目的プログラムを生成し、リンク処理を行わなけれ
ばならないという欠点がある。
本発明の目的は、上述の点に鑑み、利用者がプログラム
中でオーバレイ領域を意識することなしにオーバレイ領
域を実行時に自動的にロードすることができるオーバレ
イ領域の自動ローディング方式を提供することにある。
〔問題点を解決するための手段〕
本発明のオーバレイ領域の自動ローディング方式は、リ
ンカに外部名と名入力とを入力する外部名/名入力人名
人投手段この外部名/ L M名入力手段により入力さ
れた外部名と名入力とから外部名/ L M名対応表を
作成する外部名/ L M名対応表作成手段と、リンカ
に入力された目的プログラム中で外部名が使用されてい
るときにこの外部名がすでにリンク済みか否かを判定す
る外部名連結判定手段と、この外部名連結判定手段によ
り前記外部名がリンクされていないと判定されたときに
前記外部名が前記外部名/ L M名対応表に現在リン
ク処理中のオーバレイ領域以外のオーバレイ領域の名入
力に対応して登録されているが否かを判 ′定する外部
名登録判定手段と、この外部名登録判定手段により前記
外部名が前記外部名/ L M名対応表に現在リンク処
理中のオーバレイ領域以外のオーバレイ領域の名入力に
対応して登録されていると判定されたときに前記目的プ
ログラム中の外部名使用命令が制御移行系の命令か制御
移行系以外の命令かを判定する外部名使用命令判定手段
と、この外部名使用命令判定手段により前記外部名使用
命令が制御移行系の命令であると判定されたときにオー
バレイ領域のロード命令とオーバレイ領域に制御を移行
させる命令とを含む命令列を生成する第1の命令生成手
段と、前記外部名使用命令判定手段により前記外部名使
用命令が制御移行系以外の命令であると判定されたとき
にオーバレイ領域のロード命令とオーバレイ領域を参照
する命令とを含む命令列を生成する第2の命令生成手段
と、前記目的プログラム中の前記外部名使用命令を前記
第1の命令生成手段および前記第2の命令生成手段によ
り生成された命令列に制御を移行させるように書き換え
る命令書換え手段とを有する。
〔作用〕
本発明のオーバレイ領域の自動ローディング方式では、
外部名/名入力人名人投手段ンカに外部名と名入力とを
入力し、外部名/LM名入力表作成手段が外部名/名入
力人名人投手段り入力された外部名と名入力とから外部
名/LM名入力表を作成し、外部名連結判定手段がリン
カに入力された目的プログラム中で外部名が使用されて
いるときにこの外部名がすでにリンク済みか否かを判定
し、外部名登録判定手段が外部名連結判定手段により外
部名がリンクされていないと判定されたときに外部名が
外部名/LM名入力表に現在リンク処理中のオーバレイ
領域以外のオーバレイ領域の名入力に対応して登録され
ているか否かを判定し、外部名使用命令判定手段が外部
名登録判定手段により外部名が外部名/LM名入力表に
現在リンク処理中のオーバレイ領域以外のオーバレイ領
域の名入力に対応して登録されていると判定されたとき
に目的プログラム中の外部名使用命令が制御移行系の命
令か制御移行系以外の命令かを判定し、第1の命令生成
手段が外部名使用命令判定手段により外部名使用命令が
制御移行系の命令であると判定されたときにオーバレイ
領域のロード命令とオーバレイ領域に制御を移行させる
命令とを含む命令列を生成し、第2の命令生成手段が外
部名使用命令判定手段により外部名使用命令が制御移行
系以外の命令であると判定されたときにオーバレイ領域
のロード命令とオーバレイ領域を参照する命令とを含む
命令列を生成し、命令書換え手段が目的プログラム中の
外部名使用命令を第1の命令生成手段および第2の命令
生成手段により生成された命令列に制御を移行させるよ
うに書き換える。
〔実施例〕
次に、本発明について図面を参照して詳細に説明する。
第1図を参照すると、本発明の一実施例に係るオーバレ
イ領域の自動ローディング方式は、リンカ(図示せず)
にオーバレイ領域名(以下、名入力と略記する)とこの
名入力が示すオーバレイ領域(ロードモジュール)中で
定義されている外部入口名(外部手続き名)および外部
データ名(以下、両者を総称して単に外部名と称する)
とを利用者ファイル(図示せず)から入力する外部名/
名入力人名人投手段と、外部名/名入力人名人投手段に
より入力されたデータから外部名と名入力とが対応して
格納される外部名/LM名入力表19を作成する外部名
/LM名入力表作成手段12と、リンカに入力された目
的プログラムをリンカの外部名検出部110が走査して
外部名の使用個所を検出したときにこの外部名がすでに
リンク済みであるか否かを判定する外部名連結判定手段
13と、外部名連結判定手段13により外部名がリンク
済みでないと判定されたときにこの外部名が外部名/ 
L M名対応表19に現在リンク処理中のオーバレイ領
域以外のオーバレイ領域の名入力に対応して登録されて
いるか否かを判定する外部名登録判定手段14と、外部
名登録判定手段14により外部名が外部名/LM名入力
表19に現在リンク処理中のオーバレイ領域以外のオー
バレイ領域の名入力に対応して登録されていると判定さ
れたときに外部名を使用している外部名使用命令が制御
移行系の命令か制御移行系以外の命令かを判定する外部
名使用命令判定手段15と、外部名使用命令判定手段1
5により外部名使用命令が制御移行系の命令であると判
定されたときにオーバレイ領域のロード命令とオーバレ
イ領域に制御を移行させる制御移行命令とを含む命令列
を生成する第1の命令生成手段16と、外部名使用命令
判定手段15により外部名使用命令が制御移行系以外の
命令であると判定されたときにオーバレイ領域のロード
命令とオーバレイ領域を参照する命令とを含む命令列を
生成する第2の命令生成手段17と、目的プログラム中
の外部名使用命令を第1の命令生成手段16または第2
の命令生成手段17により生成された命令列に制御を移
行するような命令に書き換える命令書換え手段18と、
外部名/LM名入力表作成手段12により作成された外
部名/LM名入力表19と、リンカに入力された目的プ
ログラムの命令のアドレス部を走査して外部名を使用し
ているか否かを検出する外部名検出部110と、外部名
連結判定手段13により外部名がリンク済みであると判
定されたときに外部名使用個所をこの外部名がリンクさ
れているアドレスで置き換える第1のリンク処理部11
1 と、外部名登録判定手段14により外部名が外部名
/LM名入力表19に登録されていないと判定されたと
きにオーバレイ領域の考慮のいらないリンク処理を行う
第2のリンク処理部112と、命令書換え手段18によ
り目的プログラム中の外部名使用命令が第1の命令生成
手段16または第2の命令生成手段17により生成され
た命令列に制御を移行するような命令に書き換えられた
後にリンク処理を行う第3のリンク処理部113とを含
んで構成されている。
なお、外部名検出部110.第1のリンク処理部111
、第2のリンク処理部112および第3のリンク処理部
113は、既存のリンカにも設けられている部分である
次に、このように構成された本実施例のオーバレイ領域
の自動ローディング方式の動作について説明する。
まず、利用者は、名入力とこの名入力が示すオーバレイ
領域内で定義されている外部名とを検出し、検出された
名入力と外部名とを外部名/名入力人名人投手段を起動
して入力する。
外部名/LM名入力表作成手段12は、外部名/名入力
人名人投手段から入力された名入力と外部名とから外部
名/LM名入力表19を作成する。
リンカは、目的プログラムとオーバレイ領域に関するデ
ータとを入力してリンク処理を行うときに、外部名検出
部110を起動して入力した目的プログラムの命令のア
ドレス部を走査し、外部名を使用しているか否かを検出
する。
外部名検出部110により外部名の使用が検出されたと
きに、リンカは、外部名連結判定手段13を起動して検
出された外部名がリンク済みか否かを判定し、リンク済
みの場合には第1のリンク処理部111を起動して、外
部名検出部110により検出された外部名使用命令のア
ドレス部を対応する外部名がリンクされているアドレス
で置換する。
外部名連結判定手段13により外部名のリンクがまだ行
われていないと判定された場合には、リンカは、外部名
登録判定手段14を起動して外部名が外部名/LM名入
力表19に登録されているか否かを判定する。
外部名登録判定手段14により外部名が外部名/LM名
入力表19に未登録であると判定された場合には、この
外部名の定義はオーバレイ領域にはないことを示してい
るので、リンカは、第2のリンり処理部112を起動し
てオーバレイ領域の考慮のいらないリンク処理を行う。
また、外部名登録判定手段14により外部名が外部名/
LM名入力表19に登録されていると判定された場合で
も、この外部名に対応する名入力と現在リンク処理中の
オーバレイ領域の名入力とを比較し、同じならば第2の
リンク処理部112を起動してオーバレイ領域の考慮の
いらないリンク処理を行う。外部名登録判定手段14に
より外部名に対応する名入力と現在リンク処理中のオー
バレイ領域の名入力とが異なっていると判定されたなら
ば、この外部名の定義は現在リンク処理中のオーバレイ
領域以外のオーバレイ領域にあることを意味するので、
外部名使用命令判定手段15を起動して、この外部名を
アドレス部にもっている外部名使用命令が制御移行系の
命令か制御移行系以外の命令かを判定する。
外部名使用命令判定手段15により外部名使用命令が制
御移行系の命令であると判定された場合には、第1の命
令生成手段16を起動して、第2図に示す第1の生成命
令列を現在リンカが処理中の領域(プログラムのメモリ
常駐部分の領域またはオ  。
−バレイ領域)に生成する。第2図で、5AVEおよび
PUSHはリターンアドレスおよびレジスタ類をスタッ
クの所定の場所にセーブする命令であり、LOADは外
部名が定義されている名入力で示されるオーバレイ領域
をメモリにロードする命令であり、CALLは名入力で
示されるオーバレイ領域中の外部名で示されるアドレス
に制御を移す命令であり、POPはPUSH命令でセー
ブしたレジスタ類を復帰させる命令であり、RETUR
Nはセーブしたリターンアドレスに制御を戻す命令であ
る。
外部名使用命令判定手段15により外部名使用命令が制
御移行系以外の命令であると判定された場合には、第2
の命令生成手段17を起動して、第3図に示す第2の生
成命令列を現在リンカが処理中の領域に生成する。ここ
で、生成された各命令の機能は第2図の説明で述べたの
と同様である。ただし、この第2の生成命令列中の“外
部名使用命令”は、利用者の目的プログラム中に表れた
外部名を使用する命令と同じ命令である。
第1の命令生成手段柱または第2の命令生成手段I7の
処理後、リンカは、命令書換え手段IBを起動して、第
4図4a)および第5図falに示した目的プログラム
中の外部名使用命令を第4図fblおよび第5図fb)
のように書き換える。第5図(blの命令の占めるaM
tが第5図(alの命令の占める領域より大きいときは
、NOP命令(無演算命令)等の実行結果に影響のない
命令を詰めて調節する。
続いて、リンカは、第3のリンク処理部113を起動し
て、生成命令中の外部名のリンク処理を行う。この第3
のリンク処理部113によるリンク処理の結果、生成さ
れた実行形式プログラム中の外部名使用命令は全て書き
換えられた命令に置き換わっているので、実行時に外部
名の使用に先立ってオーバレイ領域のロードが行われる
〔発明の効果〕
以上説明したように本発明は、外部名/名入力人力手段
、外部名/名入力対応表作成手段、外部名連結判定手段
、外部名使用命令判定手段、第1の命令生成手段、第2
の命令生成手段および命令書換え手段を設けたことによ
り、プログラム中でオーバレイ領域の手続きあるいはデ
ータ等の外部名を使用するときに、外部名の使用に先立
ってオーバレイ領域w域をメモリ上にロードする命令を
利用者の原始プログラム中で明示的に指定する必要がな
いという効果がある。
また、システムを構成する各原始プログラムの設計中に
オーバレイ領域について考慮する必要がないので、名入
力が変更される毎に原始プログラムを修正する必要がな
くなるとともに、原始プログラムのドキュメント性が向
上するという効果もある。
【図面の簡単な説明】
第1図は本発明の一実施例に係るオーバレイ領域の自動
ローディング方式を示す全体構成図、第2図は第1図中
の第1の命令生成手段が生成した第1の生成命令列のイ
メージを示す図、第3図は第1図中の第2の命令生成手
段が生成した第2の生成命令列のイメージを示す図、第
4図(alおよび(blは第1図中の命令書換え手段が
プログラム中の制御移行系の外部名使用命令を書き換え
る前後のイメージを示す図、 第5図fa)および(blは第1図中の命令書換え手段
がプログラム中の制御移行系以外の外部名使用命令を書
き換える前後のイメージを示す図である。 図において、 11・・・外部名/名入力人名人投手 段2・・・外部名/LM名入力表作成手段、13・・・
外部名連結判定手段、 14・・・外部名登録判定手段、 15・・・外部名使用命令判定手段、 16・・・第1の命令生成手段、 17・・・第2の命令生成手段、 18・・・命令書換え手段、 19・・・外部名/LM名入力表、 110  ・・外部名検出部、 111  ・・第1のリンク処理部、 112  ・・第2のリンク処理部、 113  ・・第3のリンク処理部である。 第2図 第1の生成命令列 第4図(a) を 外部名使用命令 ソ 第3図 第4図(′b) 第5図(b)

Claims (1)

  1. 【特許請求の範囲】 リンカに外部名とLM名とを入力する外部名/LM名入
    力手段と、 この外部名/LM名入力手段により入力された外部名と
    LM名とから外部名/LM名対応表を作成する外部名/
    LM名対応表作成手段と、 リンカに入力された目的プログラム中で外部名が使用さ
    れているときにこの外部名がすでにリンク済みか否かを
    判定する外部名連結判定手段と、この外部名連結判定手
    段により前記外部名がリンクされていないと判定された
    ときに前記外部名が前記外部名/LM名対応表に現在リ
    ンク処理中のオーバレイ領域以外のオーバレイ領域のL
    M名に対応して登録されているか否かを判定する外部名
    登録判定手段と、 この外部名登録判定手段により前記外部名が前記外部名
    /LM名対応表に現在リンク処理中のオーバレイ領域以
    外のオーバレイ領域のLM名に対応して登録されている
    と判定されたときに前記目的プログラム中の外部名使用
    命令が制御移行系の命令か制御移行系以外の命令かを判
    定する外部名使用命令判定手段と、 この外部名使用命令判定手段により前記外部名使用命令
    が制御移行系の命令であると判定されたときにオーバレ
    イ領域のロード命令とオーバレイ領域に制御を移行させ
    る命令とを含む命令列を生成する第1の命令生成手段と
    、 前記外部名使用命令判定手段により前記外部名使用命令
    が制御移行系以外の命令であると判定されたときにオー
    バレイ領域のロード命令とオーバレイ領域を参照する命
    令とを含む命令列を生成する第2の命令生成手段と、 前記目的プログラム中の前記外部名使用命令を前記第1
    の命令生成手段および前記第2の命令生成手段により生
    成された命令列に制御を移行させるように書き換える命
    令書換え手段と、 を有することを特徴とするオーバレイ領域の自動ローデ
    ィング方式。
JP62286850A 1987-11-13 1987-11-13 オーバレイ領域の自動ローディング方式 Pending JPH01128130A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62286850A JPH01128130A (ja) 1987-11-13 1987-11-13 オーバレイ領域の自動ローディング方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62286850A JPH01128130A (ja) 1987-11-13 1987-11-13 オーバレイ領域の自動ローディング方式

Publications (1)

Publication Number Publication Date
JPH01128130A true JPH01128130A (ja) 1989-05-19

Family

ID=17709839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62286850A Pending JPH01128130A (ja) 1987-11-13 1987-11-13 オーバレイ領域の自動ローディング方式

Country Status (1)

Country Link
JP (1) JPH01128130A (ja)

Similar Documents

Publication Publication Date Title
JP2569092B2 (ja) 入出力機器制御プログラムのアドレス解決方法
US6317870B1 (en) System and method for optimization of inter-module procedure calls
JP2666847B2 (ja) 異種言語間連絡方式
JPH0836488A (ja) ダイナミック・パッチングを使用するランタイム・エラー・チェック方法と装置
US5051893A (en) System for processing data to facilitate the creation of executable images
JP2681929B2 (ja) プログラム起動方式
JPH01128130A (ja) オーバレイ領域の自動ローディング方式
JPS62249231A (ja) マイクロプログラム制御処理方式
JP2841363B2 (ja) 外部モジュール獲得方式
JP2621898B2 (ja) 外部参照型アドレス定数の動的解決処理方式
JP3604936B2 (ja) 最適化方法,最適化装置及び記録媒体
JPH07141189A (ja) オーバレイリンク方式
JPH07129408A (ja) 言語処理プログラムの実行方式
JPS58169637A (ja) コンパイル処理方式
JPH05189209A (ja) イニシャルプログラムローディング方式
JPH05189212A (ja) リンキング方法
JPH0844570A (ja) プログラム実行システム及び方法
JPH02214942A (ja) 親ロードモジュールへの制御移行機能の作成方式
JPH01267731A (ja) セグメントオーバレイプログラムの作成方式
JPH0566949A (ja) 関数定義コンパイルドコード呼出し方式
JPH0778087A (ja) コンパイラ装置
JPS62171034A (ja) サブル−チン・リンク方式
JPH0390931A (ja) Rom化プログラムの生成方法
JPH05233306A (ja) プログラムロード方式
JPS6316331A (ja) ジヨブ間共有ロ−ドモジユ−ルの構成方式