JPH0628159A - リロケータブルオブジェクト統合方法、及びリンケージエディタ - Google Patents

リロケータブルオブジェクト統合方法、及びリンケージエディタ

Info

Publication number
JPH0628159A
JPH0628159A JP20735592A JP20735592A JPH0628159A JP H0628159 A JPH0628159 A JP H0628159A JP 20735592 A JP20735592 A JP 20735592A JP 20735592 A JP20735592 A JP 20735592A JP H0628159 A JPH0628159 A JP H0628159A
Authority
JP
Japan
Prior art keywords
register
conversion table
relocatable
linkage editor
generating
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.)
Withdrawn
Application number
JP20735592A
Other languages
English (en)
Inventor
Junichi Shimizu
純一 清水
Yoshiyuki Miwa
善幸 三輪
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.)
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Microcomputer System Ltd
Hitachi Ltd
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 Hitachi Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi Microcomputer System Ltd
Priority to JP20735592A priority Critical patent/JPH0628159A/ja
Publication of JPH0628159A publication Critical patent/JPH0628159A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 本発明の目的は、競合回避処理を簡略化する
ことでソフトウェア開発効率の向上を図るための技術を
提供することにある。 【構成】 レジスタを直接ロードモジュールに展開しな
いで、リロケータブルオブジェクト毎に用意された変換
テーブル6に展開し、レジスタ番号と1対1に対応した
変換テーブル6にレジスタ番号を書込む。変換テーブル
6の内容を変えることでレジスタの変更を可能とし、ソ
ースプログラムの修正を行うことなくレジスタ番号の競
合回避を達成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、リロケータブルオブジ
ェクトから実行オブジェクトを生成するためのリロケー
タブルオブジェクト統合技術、さらにはそれにおける使
用レジスタの競合回避処理に関し、例えばリンケージエ
ディタに適用して有効な技術に関する。
【0002】
【従来の技術】大規模なプログラムを作成する場合、プ
ログラムを機能別に分割してモジュール化が行われる。
言語処理プログラムは各モジュール毎に処理され、リロ
ケータブルオブジェクトを個々に生成する。リンカは、
複数のリロケータブルオブジェクトを統合するもので、
そのようなリンカにオブジェクトプログラムの編集機能
を強化したものがリンケージエディタと称される。リロ
ケータブルオブジェクトは、外部記号表、テキスト、及
び再配置結合表から構成される。外部記号表にはそのモ
ジュール中から参照する外部記号名と、逆にそのモジュ
ール内で定義され、他のモジュールから参照される記号
名の全てが含まれる。
【0003】尚、リンケージエディタについて記載され
た文献の例としては、昭和59年11月30日に株式会
社オーム社から発行された「LSIハンドブック(第5
61頁)」がある。
【0004】
【発明が解決しようとする課題】H8/570(株式会
社日立製作所製)に内蔵されているI/O(インプット
/アウトプット)制御用サブプロセッサであるISP(I
ntelligent Sub Processor;インテリジェント・サブ・
プロセッサ) のように時分割方式で複数のプログラムを
動作させるプロセッサでは、各々のプログラムが使用す
るレジスタ間で競合が生じる場合、ソースプログラムの
修正が必要になる。ISPは32個のレジスタと64ビ
ットのISPフラグを有し、最大12個のプログラムを
時分割方式で同時に実行できる。ISPはI/O記述を
目的とするためタイマ、SCI(シリアル・コミュニケ
ーション・インタフェース)等の開発済みプログラムを
組合わせて使用することが多く、レジスタの競合回避処
理の頻度は一般のプロセッサと比較して極めて高い。競
合回避処理はソースプログラムの修正が不可欠であり、
修正には細心の注意と多大な時間を必要とする。そのこ
とが、ソフトウェア開発効率の向上を阻害する主たる要
因とされるのが、本発明者によって明らかとされた。
【0005】本発明の目的は、競合回避処理を簡略化す
ることでソフトウェア開発効率の向上を図るための技術
を提供することにある。
【0006】本発明の別の目的は、ソースプログラムを
修正することなく、レジスタ変更を可能とするための技
術を提供することにある。
【0007】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0008】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0009】すなわち、リロケータブルオブジェクトに
含まれる使用レジスタ情報を変換テーブルに展開し、上
記変換テーブルに登録されたレジスタ番号を、必要に応
じて修正レジスタ番号に置換し、しかる後に上記変換テ
ーブルを参照して実行オブジェクトを生成する。また、
リロケータブルオブジェクトレベルで使用レジスタの変
更を可能とするレジスタ変更処理手段と、この手段によ
るレジスタ変更情報を参照して実行オブジェクトを生成
するオブジェクト生成手段とを含んでリンケージエディ
タを形成するものである。このとき、上記複数のリロケ
ータブルオブジェクトに対応する複数の変換テーブル
と、この変換テーブルに登録されたレジスタ番号を修正
するためのレジスタ変更処理部とを含んで、上記レジス
タ変更手段を形成することができる。
【0010】
【作用】上記した手段によれば、上記変換テーブルを参
照して実行オブジェクトを生成することは、上記変換テ
ーブルの内容変更により、レジスタ競合回避を可能と
し、このことが、競合回避処理の簡略化、さらにはソフ
トウェア開発効率の向上を達成する。
【0011】
【実施例】図1には本発明の一実施例であるリンケージ
エディタの機能ブロックが示される。
【0012】図1において、1はソースプログラムをコ
ンパイル若しくはアセンブルすることによって得られた
複数のリロケータブルオブジェクトであり、この複数の
リロケータブルオブジェクトが、本実施例リンケージエ
ディタ10の処理対象とされる。
【0013】リンケージエディタ10は、上記リロケー
タブルオブジェクト1を取込むためのファイル入力部
2、変換テーブル6が形成されるレジスタワーク5やこ
の変換テーブル6の内容を変更するためのレジスタ変更
処理部4を含むレジスタ変更部3、上記変換テーブル6
を参照して上記リロケータブルオブジェクト1から実行
オブジェクト8を生成するオブジェクト生成部7を含
む。
【0014】ここで、従来技術によれば、リロケータブ
ルオブジェクト1から実行オブジェクトを直接生成する
ようにしていたため、競合回避処理のためには、どうし
てもソースプログラムの修正が不可欠とされたが、本実
施例においては、上記オブジェクト生成部7でのオブジ
ェクト生成において変換テーブル6を参照するようにし
ているため、この変換テーブル6の内容をレジスタ変更
処理部4によって変更することにより、競合回避処理の
ためにのソースプログラム修正を不要としている。すな
わち、変換テーブル6は、レジスタ番号と1対1に対応
しており、使用レジスタ番号に対応する箇所にレジスタ
番号を記憶するテーブルとされ、レジスタ変更処理部4
により、そのような変換テーブル6に登録されたレジス
タ番号の修正が可能とされることによって、リロケータ
ブルオブジェクトレベルでレジスタ競合回避が可能とさ
れる。
【0015】図2には上記変換テーブル6の内容修正の
様子が示される。
【0016】リロケータブルオブジェクト1に含まれる
使用レジスタ情報が変換テーブルに展開され、このレジ
スタ変更は、変換テーブル6に登録されたレジスタ番号
を修正レジスタ番号に置換することによって可能とされ
る。そのような処理は、全ての入力リロケータブルオブ
ジェクト1に対して個々に行われる。図2においては、
特に制限されないが、レジスタ0がレジスタ2に、レジ
スタ1がレジスタ3に、レジスタ2がレジスタ1に、レ
ジスタ3がレジスタ0に、それぞれ変更されている。変
換テーブル6の内容が修正された後、オブジェクト生成
部7によって変換テーブル6が参照され、リロケータブ
ルオブジェクト1から実行オブジェクト8が生成される
と、その実行オブジェクトでは、上記変換テーブル6の
内容に従った新たなレジスタ番号が設定されている。
【0017】このように、レジスタ変更部で修正したレ
ジスタテーブルを参照して実行オブジェクトファイルを
生成することで、リロケータブルオブジェクトレベルで
使用レジスタの変更が可能となるので、競合回避処理の
ためにソースプログラムを修正する必要がない。
【0018】図3には本実施例リンケージエディタによ
る詳細な処理の流れが示される。
【0019】先ず、ワークエリアへの登録ポインタが先
頭に戻され(31)、入力リロケータブルオブジェクト
ファイルが存在する場合(32)であって、一つのリロ
ケータブルオブジェクトファイルがファイルエンドにな
っていない場合(35)には、リロケータブルオブジェ
クトファイルから1行分がリードされ(40)、それが
ワークエリアに登録される(41)。そして、その登録
内容にレジスタ情報を含むか否かの判別が行われ(4
2)、その判別において、レジスタ情報を含む(Ye
s)と判断された場合には、当該レジスタ情報が変換テ
ーブルに6に登録され、レジスタ情報を含まないと判断
された場合には、ワークエリアの登録ポインタが更新さ
れる。また、リロケータブルオブジェクトファイルがフ
ァイルエンドの場合には、レジスタ番号を変更するか否
かの判別が行われ(36)、その判別においてレジスタ
番号を変更する(Yes)と判断された場合には、レジ
スタ変更処理部4によって、変換テーブル6のレジスタ
情報が置換される(44)。しかし、レジスタ番号を変
更しないと判断された場合には、ワークエリアへの登録
ポインタが先頭に戻される(33)。レジスタ番号を変
更するか否かは、特に制限されないが、キーボードから
の変更入力に従う。つまり、レジスタ競合回避処理の必
要性を生じた場合、オペレータはキーボードを介してレ
ジスタ変更情報を入力し、そのような入力があった場合
に、上記ステップ36の判別において「Yes」と判断
され、これにより上記ステップ44におけるレジスタ情
報の置換が行われる。
【0020】ワークエリアが最終となれば、本フローチ
ャートの処理が終了されるが、そうでない限り、ステッ
プ37〜39、及び45の処理が行われる。すなわち、
ワークエリアが最終でない場合には、ワークエリアから
リロケータブルオブジェクトファイルの1行分が読出さ
れ(39)、それにレジスタ情報が含まれるか否かの判
別が行われる(38)。この判別において、レジスタ情
報が含まれると判断された場合(Yes)には、変換テ
ーブル6からレジスタ情報が取出され(45)、この変
換テーブル6から読出されたレジスタ情報がオブジェク
ト生成部7で参照されることによって実行オブジェクト
8が生成される(39)。また、上記ステップ38の判
別において、レジスタ情報を含まないと判断された場合
には、変換テーブル6からレジスタ情報が読出されるこ
となく、実行オブジェクト8が生成される(39)。
【0021】このように、変換テーブル6が参照される
ことによって実行オブジェクト8の生成が行われるの
で、この変換テーブル6の内容を変更することで、レジ
スタ変更が可能とされ、少なくともレジスタ変更に際し
てソースプログラムの修正が不要とされる。特に、IS
Pにおいては、32個のレジスタと64ビットのISP
フラグを有し、I/O記述を目的とするためタイマ、S
CI等の開発済みプログラムを組合わせて使用すること
が多く、レジスタの競合回避処理の頻度は一般のプロセ
ッサと比較して極めて高いが、そのような場合でも、上
記実施例のように変換テーブル6の内容変更により、競
合回避処理のためのソースプログラムの修正を行う必要
がない。
【0022】上記実施例によれば以下の作用効果が得ら
れる。
【0023】(1)レジスタを直接ロードモジュールに
展開しないで、リロケータブルオブジェクト毎に用意さ
れた変換テーブル6に展開される。レジスタの展開はレ
ジスタ番号と1対1に対応した変換テーブル6にレジス
タ番号を書込むことで行われる。レジスタの変更は、変
換テーブル6の内容を変えることで可能とされ、ロード
モジュールの作成は変換テーブル6値を用いて行われ
る。それにより、ソースプログラムの修正を行うことな
くレジスタの変更が可能とされるので、ソフトウェア開
発効率の向上を図ることができる。
【0024】(2)上記のように、リロケータブルオブ
ジェクトレベルでレジスタの変更が可能とされるため、
保守性の向上、ソースプログラムの機密保護の点で有利
とされる。
【0025】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
【0026】例えば、上記実施例では、リロケータブル
オブジェクト毎に用意された変換テーブル6にレジスタ
を展開するようにしたが、リロケータブルオブジェクト
内に含まれるセクション単位で変換テーブルにレジスタ
を展開するようにしてもよいし、指定したリロケータブ
ルオブジェクト単位で変換テーブル6にレジスタを展開
するようにしてもよい。また、上記実施例では、レジス
タ競合回避処理の必要性を生じた場合に、キーボードを
介してレジスタ変更情報を入力するようにし、、そのよ
うな入力があった場合に、レジスタ情報の置換が行われ
るようにしたが、レジスタ競合をリンケージエディタに
より自動的に検知し、それが回避されるように変換テー
ブル6の内容を書換えるようにしてもよい。
【0027】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるリンケ
ージエディタについて説明したが、本発明はそれの限定
されるものではなく、リロケータブルオブジェクト統合
方法として、広くリンカに適用することができる。
【0028】本発明は、少なくともリロケータブルオブ
ジェクトを取扱うことを条件に適用することができる。
【0029】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0030】すなわち、変換テーブルを参照して実行オ
ブジェクトを生成することにより、上記変換テーブルの
内容を変更すれば、ソースプログラムを修正することな
く、レジスタ競合回避が可能とされ、それによって、競
合回避処理の簡略化が図られ、ソフトウェア開発効率の
向上が達成される。
【図面の簡単な説明】
【図1】本発明の一実施例であるリンケージエディタの
機能ブロック図である。
【図2】上記リンケージエディタにおける変換テーブル
の内容修正の説明図である。
【図3】上記リンケージエディタの詳細な処理のフロー
チャートである。
【符号の説明】
1 リロケータブルオブジェクト 2 ファイル入力部 3 レジスタ変更部 4 レジスタ変更処理部 5 レジスタワーク 6 変換テーブル 7 オブジェクト生成部 8 実行オブジェクト 10 リンケージエディタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数のリロケータブルオブジェクトを結
    合して実行オブジェクトを生成するためのリロケータブ
    ルオブジェクト統合方法において、リロケータブルオブ
    ジェクトに含まれる使用レジスタ情報を変換テーブルに
    展開するステップと、上記変換テーブルに登録されたレ
    ジスタ番号を、必要に応じて修正レジスタ番号に置換す
    るステップと、上記変換テーブルを参照して実行オブジ
    ェクトを生成するステップとを含むことを特徴とするリ
    ロケータブルオブジェクト統合方法。
  2. 【請求項2】 複数のリロケータブルオブジェクトを結
    合して実行オブジェクトを生成するリンケージエディタ
    において、リロケータブルオブジェクトレベルで、使用
    レジスタの変更を可能とするレジスタ変更処理手段と、
    この手段によるレジスタ変更情報を参照して実行オブジ
    ェクトを生成するオブジェクト生成手段とを含むことを
    特徴とするリンケージエディタ。
  3. 【請求項3】 上記レジスタ変更手段は、上記複数のリ
    ロケータブルオブジェクトに対応する複数の変換テーブ
    ルと、この変換テーブルに登録されたレジスタ番号を修
    正するためのレジスタ変更処理部とを含む請求項2記載
    のリンケージエディタ。
JP20735592A 1992-07-10 1992-07-10 リロケータブルオブジェクト統合方法、及びリンケージエディタ Withdrawn JPH0628159A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20735592A JPH0628159A (ja) 1992-07-10 1992-07-10 リロケータブルオブジェクト統合方法、及びリンケージエディタ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20735592A JPH0628159A (ja) 1992-07-10 1992-07-10 リロケータブルオブジェクト統合方法、及びリンケージエディタ

Publications (1)

Publication Number Publication Date
JPH0628159A true JPH0628159A (ja) 1994-02-04

Family

ID=16538362

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20735592A Withdrawn JPH0628159A (ja) 1992-07-10 1992-07-10 リロケータブルオブジェクト統合方法、及びリンケージエディタ

Country Status (1)

Country Link
JP (1) JPH0628159A (ja)

Similar Documents

Publication Publication Date Title
JP2666847B2 (ja) 異種言語間連絡方式
JPH0628159A (ja) リロケータブルオブジェクト統合方法、及びリンケージエディタ
JPH03240837A (ja) デバッグ情報生成装置
JPH0414144A (ja) コンパイル処理方法
JPH02205930A (ja) インタフェースチェック処理方法
JPH07121363A (ja) データベース駆動によるプログラム実行方式
JPH05204699A (ja) デバッグ時識別子探索方式
JP2000132405A (ja) インライン展開処理装置及び方法
JPH04248624A (ja) プログラム変換処理装置
JPH0390931A (ja) Rom化プログラムの生成方法
JPH02244332A (ja) アセンブラオブジェクト編集出力方式
JPH0498322A (ja) コンパイラの作成方法
JPH036624A (ja) 複数コード系に対応する翻訳リスト出力処理方式
JPH05100866A (ja) コンパイル・リンク方式
JPH0266631A (ja) 日本語名標による番地対応表出力方式
JPS63280335A (ja) 言語処理システム
JPH02130637A (ja) ソースコード翻訳方式
JPH06348505A (ja) コンパイル方法
JPH06236261A (ja) 手続き型言語プログラム・コンポーネントの分離方式
JPS62140143A (ja) プログラム変換用プログラム作成装置
JPH0250730A (ja) 共通機械語による言語変換方式
JPH04243424A (ja) 動的リンク方式
JPH05210509A (ja) プリコンパイラ用修飾語変換ツール
JPH04195525A (ja) ジョブ制御言語作成方式
JPH04282725A (ja) ソフトウェア開発環境に関する処理方式

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991005