JPH01267731A - セグメントオーバレイプログラムの作成方式 - Google Patents

セグメントオーバレイプログラムの作成方式

Info

Publication number
JPH01267731A
JPH01267731A JP9739988A JP9739988A JPH01267731A JP H01267731 A JPH01267731 A JP H01267731A JP 9739988 A JP9739988 A JP 9739988A JP 9739988 A JP9739988 A JP 9739988A JP H01267731 A JPH01267731 A JP H01267731A
Authority
JP
Japan
Prior art keywords
program
overlay
segment
branch
instruction
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
JP9739988A
Other languages
English (en)
Inventor
Chieko Sakuma
佐久間 千惠子
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 JP9739988A priority Critical patent/JPH01267731A/ja
Publication of JPH01267731A publication Critical patent/JPH01267731A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はセグメントオーバレイプログラム(プログラム
を複数のセグメントに分割して作成し、プログラムの実
行時において各セグメントが参照される時点等で各セグ
メントを交互にメモリ上にローディングする方式のプロ
グラム。「ソースプログラム」や「目的プログラム」で
はなく単に「プログラム」という場合は、ロードモジュ
ールを示す)の作成方式に関し、特に計算機システムに
おける翻訳処理および結合編集処理に係るセグメントオ
ーバレイプログラムの作成方式に関する。
〔従来の技術〕
従来、この種のセグメントオーバレイプログラムの作成
方式では、プログラムのメモリ配置がセグメントに関し
てオーバレイ構造となるようにプログラム開発者がソー
スプログラムの設計を行い、ソースプログラム上に直接
的にセグメントオーバレイ記述(セグメントオーバレイ
プログラムを実現するための情報の記述)が行われてい
た。
〔発明が解決しようとする課題〕
上述した従来のセグメントオーバレイプログラムの作成
方式では、プログラムのメモリ配置がセグメントに関し
てオーバレイ構造となるようにプログラム開発者がソー
スプログラムの設計を行い、ソースプログラム上に直接
的にセグメントオーバレイ記述が行われているので、以
下に示すような欠点がある。
・プログラム開発の初心者にとっては理解が困難なセグ
メントオーバレイプログラムに関する知識がソースプロ
グラムの設計において必要となる。
・実際に作成したセグメントオーバレイプログラムが所
望のものと適合しなかった場合(当初の設計と異なった
プログラムに変換する必要がある場合を含む)に、ソー
スプログラムの設計から再び行わなければならず、ソー
スプログラムの大規模な修正が必要となる。
・プログラム開発者がソースプログラム上に直接的にセ
グメントオーバレイ記述を行うためにその記述の誤りに
起因するセグメントオーバレイのタイミング(セグメン
トオーバレイプログラムの実行時における各セグメント
のローディングの順序等)の誤りが発生しやすくなる。
本発明の目的は、上述の点に鑑み、ソースプログラムの
設計時にプログラムのメモリ配置がセグメントに関して
オーバレイ構造となるように考慮する必要がなくなり、
ソースプログラム上に直接的にセグメントオーバレイ記
述を行う必要がないセグメントオーバレイプログラムの
作成方式を捉供することにある。
〔課題を解決するための手段〕
本発明のセグメントオーバレイプログラムの作成方式は
、ソースプログラム上の分岐命令の中で外部参照を必要
とする分岐命令を疑似命令に置換して目的プログラムを
作成する翻訳プログラムと、この翻訳プログラムにより
置換された疑似命令をセグメントオーバレイ制御システ
ム実行時ルーチンへの分岐命令および直接分岐命令のい
ずれかに置換しセグメントオーバレイ制御システム実行
時ルーチンと前記翻訳プログラムにより作成された目的
プログラムとを自動的に結合編集してセグメントオーバ
レイプログラムを作成する結合編集プログラムとを有す
る。
〔作用〕
本発明のセグメントオーバレイプログラムの作成方式で
は、翻訳プログラムがソースプログラム上の分岐命令の
中で外部参照を必要とする分岐命令を疑似命令に置換し
て目的プログラムを作成し、結合編集プログラムが翻訳
プログラムにより置換された疑似命令をセグメントオー
バレイ制御システム実行時ルーチンへの分岐命令および
直接分岐命令のいずれかに置換しセグメントオーバレイ
制tnシステム実行時ルーヂンと翻訳プログラムにより
作成された目的プログラムとを自動的に結合編集してセ
グメントオーバレイプログラムを作成する。
(実施例〕 次に、本発明について図面を参照して説明する。
第1図は、本発明のセグメントオルバレイプログラムの
作成方式の一実施例の構成を示すブロック図である0本
実施例のセグメントオーバレイプログラムの作成方式は
、ソースプログラムl  (DK(DisK)やFD 
(Floppy  Disk)等に格納されている。セ
グメントオーバレイ制御システム実行時ルーチン4.ロ
ードモジュール9および目的プログラム51.52.・
・・、 5nも同様)と、翻訳プログラム2と、セグメ
ントオーバレイ制御システム実行時ルーチン4と、結合
編集プログラム6と、ロードモジュール9 (セグメン
トオーバレイプログラム)と、目的プログラム51.5
2゜・・・、 5nとを含んで構成されている(目的プ
ログラム52.・・・、 5nに対応するソースプログ
ラムは図示していない)。
翻訳プログラム2は、ソースプログラムl上の分岐命令
の中で外部参照を必要とする分岐命令を疑似命令に置換
して出力する疑イ以命令5!換手段3を含んで構成され
ている。
結合編集プログラム6は、目的プログラム51゜52、
・・・、 5n上の疑似命令をセグメントオーバレイ制
御システム実行時ルーチン4への分岐命令および直接分
岐命令のいずれか(ロードモジュール9上の分岐命令、
内容は後述)に置換する分岐命令7t 10手段7と、
セグメントオーバレイ制御システム実行時ルーチン4を
目的プログラム51.52.・・・。
50と自動的に結合編集する結合編集手段8とを含んで
構成されている。
第2図を参照すると、ロードモジュール9の実行時にお
けるセグメントオーバレイ制御システム実行時ルーチン
4の処理は、セグメントオーバレイステップ10と、分
岐内容判定ステップ11と、目的アドレスJUMPステ
ップ12と、目的アドレスCALLステップ13と、メ
モリ上戻り先存在判定ステップ14と、セグメントオー
バレイステップ15と、戻りアドレスリターンステップ
16とからなる。
第3図は、疑似命令置換手段3によりソースプログラム
(ソースプログラム1を含む)上の分岐命令が目的プロ
グラム51.52.・・・、 Sn上の疑似命令に置換
(変換)される場合の態様の一例を表す変換表を示す図
である。
第4図は、分岐命令111手段7により目的プログラム
51.52.・・・、 5n上の疑似命令がロードモジ
ュール9上の分岐命令に置換(変換)される場合の態様
の一例を表す変換表を示す図である。
次に、このように構成された本実施例のセグメントオー
バレイプログラムの作成方式の動作について説明する。
翻訳プログラム2は、ロードモジュール9のメモリ配置
(セグメントに関してオーバレイ構造となるようなメモ
リ配置)を意識することなく記述されたソースプログラ
ム1を入力しその翻ミ)シ処理を行う。
ここで、翻訳プログラム2内の疑(身命装置IM ’T
’段3は、ソースプログラム1 (翻訳プログラム2の
翻訳処理における翻訳単位)上に存在しない外部参照名
に対して分岐することを指示する分岐命令(外部参照を
必要とする分岐命令)を疑似命令に置換する。
例えば、rGo  To  行き先」およびrJUMP
  行き先」等の単純分岐命令はr@OV J MP 
行き先」という疑似命令に置換され、rCALL  呼
び先」等のサブルーチン呼出し命令は「@0VCALL
  呼び先」という疑似命令に置換される(第3図参照
)。
このように、翻訳プログラム2は、疑似命令置換手段3
によりソースプログラム1上の外部参照を必要とする分
岐命令が疑似命令に置換された翻訳結果を目的プログラ
ム51として出力する(目的プログラム52.・・・、
 5nも同様に対応するソースプログラム(翻訳fit
位)上の外部参照を必要とする分岐命令が疑似命令に置
換された翻訳結果として出力される)。
結合編集プログラム6は、目的プログラム51゜52、
・・・、 5nを入力しそれらの結合編集処理を行う。
ここで、r古合搗集プログラム6は、まず目的フ。
ログラム51.52.・・・、 5nを利用者(プログ
ラム開発者等)が指定するメモリ配置(セグメントに関
してオーバレイ構造となるようなメモリ配置)に基づい
て結合する(複数のセグメントが作成される)。
結合編集プログラム6内の分岐命令置換手段7は、目的
プログラム5L 52.・・・、 5n上で疑似命令と
して出力されている各分岐命令についてその分岐先がそ
の疑似命令が存在するセグメント以外のオーバレイモジ
ュール(メモリ (図示せず)に常駐しないセグメント
)に存在するか否かを判断する。
この判断で目的プログラム51.52.・・・、 5n
上で疑似命令として出力されている分岐命令の分岐先が
その疑似命令が存在するセグメント以外のオーバレイモ
ジュールに存在する場合には、分岐命令置換手段7はそ
の疑似命令をセグメントオーバレイ制御システム実行時
ルーチン4への分岐命令(ロードモジュール9上の分岐
命令)に置換する。
例えば、r@OVJMP  行き先(分岐先)」という
疑似命令は、分岐先が存在するオーバレイモジュールの
識別情報であるオーバレイモジュール番号を特定のレジ
スタ(レジスタRIとする)に格納するrMOV  R
1,オーバレイモジュール番号」という実命令(a械語
(ここではアセンブラ言語で示している)の命令)1行
き先のアドレスを他の特定のレジスタ(レジスタR2と
する)に格納するrMOV  R2,行き先(行き先の
アドレス)」という実命令およびセグメントオーバレイ
制御システム実行時ルーチン4への分岐(単純分岐)を
行うr 、J M P  セグメントオーバレイ制御シ
ステム実行時ルーチン」という実命令に置IQさレル。
また、r@0VCALL  呼び先」という疑似命令は
、分岐先が存在するオーバレイモジュールのオーバレイ
モジュール化・号をレジスタR1に格納するrMOV 
 R1,オーバレイモジュール番号」という実命令、a
Pび先(分岐先)のアドレスをレジスタR2に格納する
r M OVR2,呼び先」という実命令およびセグメ
ントオーバレイ制御システム実行時ルーチン4への分岐
(サブルーチン呼出し)を行うrCALL  セグメン
トオーバレイ制11tlシステム実行時ルーチン」とい
う実命令に置換される(第4図参照)。
上述の分岐命令置換手段7による1ilUtで目的プロ
グラム51.52.  ・・・、 Sn上でHQ命令と
して出力されている分岐命令の分岐先がそのrJ (I
I命令が存在するセグメント以外のオーバレイモジュー
ルに存在しない場合(疑似命令が存在するオーバレイモ
ジュールと同一のオーバレイモジュールに分岐先が存在
する場合またはメモリに常駐するセグメントに分岐先が
存在する場合)には、分岐命令置換手段7は疑似命令を
直接分岐命令(セグメントオーバレイ制御システム実行
時ルーチン4を介さず直接的に分岐先に分岐することを
指示するロードモジュール9上の分岐命令)にff1a
する。
例えば、r@OVJMP  行き先(分岐先)」という
疑似命令は、直接的に行き先のアドレスに分岐するrJ
MP  行き先(行き先のアドレス)」という実命令に
置換される。また、r@OV CALL  呼び先(分
岐先)」という疑似命令は、直接的に呼び先のアドレス
に分岐するrCALL呼び先(呼び先のアドレス)」と
いう実命令に置換される(第4図参照)。
さらに、上述の分岐命令置換手段7による判断で目的プ
ログラム51.52.・・・、 5n上で疑似命令とし
て出力されている分岐命令の分岐先がその疑似命令が存
在するセグメント以外のオーバレイモジュールに存在す
る場合には、結合編集プログラム6内の結合編集手段8
は、セグメントオーバレイ制御システム実行時ルーチン
4を自動的に(利用者等による指示を必要とせずに)目
的プログラム51、52.・・・、 5nと結合編集す
る。
結合編集プログラム6は、このような結合[処理を行い
、結合編集結果としてセグメントオーバレイプログラム
であるロードモジュール9を出力する。
このようにして作成されたロードモジュール9の実行時
におけるセグメントオーバレイ制御システム実行時ルー
ヂン4の処理は、以下に示すように行われる(第2図参
照)。
まず、目的の分岐先の存在するオーバレイモジュールの
セグメントオーバレイ(メモリ上に存在するオーバレイ
モジュール(分岐先の存在するオーバレイモジュールと
同時に実行されることのないオーバレイモジュール)の
退避および分岐先の存在するオーバレイモジュールのメ
モリへのローディング)を行う (ステップ10) 。
次に、分岐命令の内容が1p−純分岐であるかサブルー
チン呼出しであるかをi:I+定する(ステップ11)
この判定で分岐命令の内容が単純分岐である場合には、
目的アドレス(目的の分岐先のアドレス)に単純分岐(
JUMP)L (ステップ12)、処理を終了する。
ステップ1】の判定で分岐命令の内容が鎖線分岐ではな
くサブルーチン呼出しである場合には、目的アドレスに
対するサブルーチン呼出しくCALL)を行う(ステッ
プ13)。
サブルーチン呼出しの対象となったサブルーチンの所定
の処理が終了した後にそのサブルーチンからそのサブル
ーチンを呼び出したメインルーチンに戻る場合には、そ
の戻るべきメインルーチン内の戻り先を有するセグメン
トがメモリ上に存在するか否かを判定する(ステップ1
4)。
この判定で戻り先ををするセグメントがメモリ上に存在
しない場合には、戻り先を有するセグメント(オーバレ
イモジュール)のセグメントオーバレイ (メモリ上に
存在するオーバレイモジュール(戻り先を有するオーバ
レイモジュールと同時に実行されることのないオーバレ
イモジ1−ル)の退避および戻り先を有するオーバレイ
モジュールのメモリへのローディング)を゛行う (ス
テップ15)。
ステップ14の判定で戻り先を有するセグメントがメモ
リ上に存在する場合またはステップ15のセグメントオ
ーバレイが終了した場合には、メインルーチン内の戻り
先(戻りアドレス)にリターンする(ステップ16)。
上述のように、セグメントオーバレイ制御システム実行
時ルーチン4は、分岐先のアドレスの存在するオーバレ
イモジュールがメモリ上にロードされているか否かを判
別しロードされていない場合にはそのオーバレイモジュ
ールに係るセグメントオーバレイを行いそのオーバレイ
モジュールをメモリ上にロードしその後にそのオーバレ
イモジュール内の目的アドレスに分岐するシステムサブ
ルーチンである。
〔発明の効果〕
以上説明したように本発明は、ソースプログラム(翻訳
単位)上の外部参照を必要とする分岐命令を疑似命令に
置換して目的プログラムを作成する翻訳プログラムと、
セグメントオーバレイ1lNI ?)IIシステム実実
行シル−チン翻訳プログラムにより作成された目的プロ
グラムとを結合編集してセグメントオーバレイプログラ
ムを作成する結合編集プログラムとを設けることにより
、以下に示すような効果がある。
・ソースプログラムの設計時にプログラムのメモリ配置
がセグメントに関してオーバレイ構造となるように考慮
する必要がなくなる。
・ソースプログラムの設計においてセグメントオーバレ
イを意識する必要がないために、プログラム開発の初心
者でも容易にセグメントオーバレイプログラムの作成が
できる。
・プログラム開発者がソースプログラム上に直接的にセ
グメントオーバレイの記述を行う必要がないために、そ
の記述の誤りに起因するセグメントオーバレイのタイミ
ングの誤りが発生しなくなる。
・実際に作成したセグメントオーバレイプログラムが所
望のものと適合しなかった場合に、ソースプログラムの
設計から再び行う必要がなく、ソースプログラムの大規
模な修正が不要になる(当初の設計と異なったプログラ
ムに変換すること(設計変更)にも柔軟に対応できる)
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、 第2図は第1図中のロードモジュールの実行時における
セグメントオーバレイ制御システム実行時ルーチンの処
理を示す流れ図、 第3図は第1図中の疑(身命令出力手段によりソースプ
ログラム上の分岐命令が目的プログラム上の疑似命令に
置換(変換)される場合の態様の一例を表す変換表を示
す図、 第4図は第1図中の分岐命令置換手段により目的プログ
ラム上の疑似命令がロードモジュール上の分岐命令に置
換(変換)される場合の態様の一例を表す変換表を示す
図である。 図において、 1・・・ソースプログラム、 2・・・翻訳プログラム、 3・・・疑似命令置換手段、 4・・・セグメントオーバレイ制御システム実行時ルー
チン、 6・・・結合編集プログラム、 7・・・分岐命令置換手段、 8・・・結合編集手段、 9・・・ロードモジュール、 51〜5n・目的プログラムである。

Claims (1)

  1. 【特許請求の範囲】 ソースプログラム上の分岐命令の中で外部参照を必要と
    する分岐命令を疑似命令に置換して目的プログラムを作
    成する翻訳プログラムと、 この翻訳プログラムにより置換された疑似命令をセグメ
    ントオーバレイ制御システム実行時ルーチンへの分岐命
    令および直接分岐命令のいずれかに置換しセグメントオ
    ーバレイ制御システム実行時ルーチンと前記翻訳プログ
    ラムにより作成された目的プログラムとを自動的に結合
    編集してセグメントオーバレイプログラムを作成する結
    合編集プログラムと、 を有することを特徴とするセグメントオーバレイプログ
    ラムの作成方式。
JP9739988A 1988-04-19 1988-04-19 セグメントオーバレイプログラムの作成方式 Pending JPH01267731A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9739988A JPH01267731A (ja) 1988-04-19 1988-04-19 セグメントオーバレイプログラムの作成方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9739988A JPH01267731A (ja) 1988-04-19 1988-04-19 セグメントオーバレイプログラムの作成方式

Publications (1)

Publication Number Publication Date
JPH01267731A true JPH01267731A (ja) 1989-10-25

Family

ID=14191440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9739988A Pending JPH01267731A (ja) 1988-04-19 1988-04-19 セグメントオーバレイプログラムの作成方式

Country Status (1)

Country Link
JP (1) JPH01267731A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010146181A (ja) * 2008-12-17 2010-07-01 Fujitsu Ltd 実行ファイル作成装置
US8371498B2 (en) 2005-12-20 2013-02-12 Ibiden Co., Ltd. Method for manufacturing a printed wiring board

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8371498B2 (en) 2005-12-20 2013-02-12 Ibiden Co., Ltd. Method for manufacturing a printed wiring board
JP2010146181A (ja) * 2008-12-17 2010-07-01 Fujitsu Ltd 実行ファイル作成装置

Similar Documents

Publication Publication Date Title
CA2082408C (en) System and method for preserving source instruction atomicity in translated program code
US5307504A (en) System and method for preserving instruction granularity when translating program code from a computer having a first architecture to a computer having a second reduced architecture during the occurrence of interrupts due to asynchronous events
EP0528024B1 (en) Improved error reporting for translated code execution
EP0241946A2 (en) Information processing system
US4562538A (en) Microprocessor having decision pointer to process restore position
JP2002508560A (ja) マルチプル・クラスファイルのランタイムイメージへの結合
JPH01306923A (ja) 異種言語間連絡方式
US4484274A (en) Computer system with improved process switch routine
US5742801A (en) Microprocessor to which additional instructions are added and instructions addition method thereof
JPH0522936B2 (ja)
JPH01267731A (ja) セグメントオーバレイプログラムの作成方式
US5819081A (en) Method of executing a branch instruction of jumping to a subroutine in a pipeline control system
US6934892B2 (en) Computing system construction method under execution environment to be dependent on OS
JPH0754467B2 (ja) データ処理装置
JPH02197924A (ja) 中央演算処理装置
JP2004118518A (ja) シミュレータ、そのシミュレータをコンピュータ読み取り可能に記録した記録媒体
JPH02245934A (ja) データ処理装置
JPS5995646A (ja) 演算制御装置
JPS6220032A (ja) 情報処理装置
JPH04365133A (ja) プレロード命令実行装置及びプログラム修正装置
JPS6126695B2 (ja)
JPS62171036A (ja) コンパイラのモジユ−ル共用方式
Cosserat MicroSim-a new approach to program development
JPS6326416B2 (ja)
JPH1124939A (ja) プログラム変換方法