JPH02206838A - 共通サブル―チンリンク方法 - Google Patents

共通サブル―チンリンク方法

Info

Publication number
JPH02206838A
JPH02206838A JP2581089A JP2581089A JPH02206838A JP H02206838 A JPH02206838 A JP H02206838A JP 2581089 A JP2581089 A JP 2581089A JP 2581089 A JP2581089 A JP 2581089A JP H02206838 A JPH02206838 A JP H02206838A
Authority
JP
Japan
Prior art keywords
subroutine
common
jump
jump table
address
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
JP2581089A
Other languages
English (en)
Inventor
Satomi Hirano
平野 里美
Wataru Sasaki
亘 笹木
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 Ltd
Original Assignee
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 Ltd filed Critical Hitachi Ltd
Priority to JP2581089A priority Critical patent/JPH02206838A/ja
Publication of JPH02206838A publication Critical patent/JPH02206838A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は複数のプログラムからコールされるサブルーチ
ンのリンク方式に関し、特にリンク実行時間が短く、所
要メモリ量の少ないサブルーチンリンク方式に関する。
〔従来の技術〕
従来共通サブルーチンのリンク方式に関しては特開昭6
2−171034号に記載の様な方法が知られている。
複数のプログラムで使用しているサブルーチンをメモリ
要量を少なくする為に共通化し、共通サブルーチンとす
る。
この共通サブルーチンをコールする場合は、サブルーチ
ン番号を知っているリンケージ用サブルーチンを介し、
サブルーチン番号からジャンプテーブルを引き、サブル
ーチン本体のロードアドレスを求めて、そこにジャンプ
する。
この方法によると、サブルーチン番号が変らない範囲で
あれば、サブルーチンの内容を変更したり、ローディン
グアドレスを変更しても、コール側のプログラムを書換
えたり、再コンパイル、再リンクエデイツトする必要は
ない。
〔発明が解決しようとする課題〕
上記従来の技術は、リンケージ用サブルーチンを介して
いる。その為、その分の処理時間が必要となる。又サブ
ルーチン番号よりジャンプ先アドレスを求める為に、レ
ジスタを使用しなければならない。
本発明は、リンケージ用サブルーチンを介さず又、レジ
スタも使用しないリンク方法を考えた。
〔課題を解決するための手段〕
上記目的は共通サブルーチンをコールする場合に、固定
アドレスでコールできる様に中間にジャンプテーブルを
設ける事で達成できる。
又、従来の発明の様に、メモリ要量も少なく、共通サブ
ルーチンを変更しても、コール側のプログラムを変更し
たり、再コンパイル、リンクエデイツトする必要もない
〔作用〕
共通サブルーチンをコールする場合、まずジャンプテー
ブル自アドレスへジャンプする。次にジャンプテーブル
によって、サブルーチンそのものへジヤンプする。
これによってリンケージ用サブルーチンを介さず、又命
令はジャンプ命令だけであるので、レジスタも使用せず
に共通サブルーチンをコールできる。
〔実施例〕
以下本発明の一例を第1図により説明する。
ジャンプテーブル3は共通サブルーチン4の先頭へ設け
る。ジャンプテーブルは第1図の様に、(1)サブルー
チンへのジャンプ命令を列挙し、共通サブルーチンすべ
てとリンクエデイツトする事によって、サブルーチンへ
ジャンプできる様にする方法と、(2)予め決めたサブ
ルーチンのアドレスへのジャンプ命令を列挙しておく方
法の2つがある。(1)だと共通サブルーチン変更時に
、ジャンプテーブルを変更する必要はないが、共通サブ
ルーチンすべてをジャンプテーブルと一緒にリンクエデ
イツトし直す必要がある。(2)だと共通サブルーチン
変更時に、ジャンプテーブルを変更しなければならない
が、変更したサブルーチンとジャンプテーブルのみリン
クエデイツトすれば良い、ジャンプテーブル内アドレス
を与えるモジュール2は共通サブルーチンを使用してい
るプログラム1とリンクエデイツトする事により、サブ
ルーチンをコールする命令5が来ると、対応するジャン
プテーブル内アドレス6を与える。
具体的に、サブルーチンコールの順序を追ってみると、
プログラム1を実行させ、サブルーチンコール5(js
r−subl)に来る。モジュール2より一5ublに
はジャンプテーブル内アドレスの6 (OX 1230
0)が与えられているから、jsr  0X12300
となりジャンプテーブル3のサブルーチンジャンプ命令
7(jmp−s u b 1)へジヤンプする。ジャン
プテーブルと、共通サブルーチンは一緒にリンクエデイ
ツトしであるので、ジャンプ命令7によってサブルーチ
ン−5ublの先頭へジヤンプする0以上の様な順序で
、プログラム1から、共通サブルーチンがコールされる
また、第2図の様にプログラム9.プログラム10は共
通サブルーチン11の−5ub3をコールしている。こ
こで共通サブルーチン11の一5ub2を変更し、共通
サブルーチン12とすると共通サブルーチン内の−5u
b3のアドレスは変更になるが、プログラム9.プログ
ラム10からコールするー5ub3のアドレス即ちジャ
ンプテーブルのアドレスは変更されないので、共通サブ
ルーチンの変更時、コールするプログラム9゜1oは、
再コンパイル、リンクエデイツトしなくともサブルーチ
ン−5ub3をコールする事ができる。
〔発明の効果〕
本発明では、ジャンプテーブルを設ける事により共通サ
ブルーチンを一括してリンクエデイツトできるので、メ
モリ要量が少なくてすむ。又、コールするプログラムと
共通サブルーチンを別々にコンパイル、リンクエデイツ
トできるので、お互いの変更時に、再コンパイル、リン
クエデイツトする必要がないという効果があるゆ 又、リンケージ用サブルーチンを用いない事により、処
理の高速化がはかれ、レジスタを使用しないでサブルー
チンリンクを行なえるという効果もある。
【図面の簡単な説明】
第1図、第2図は本発明の実施例を示す図である。 1・・・共通サブルーチンをコールするプログラム。 2・・・コールされたサブルーチンと対応するジャンプ
テーブル内アドレスを与えるモジュール、3・・・ジャ
ンプテーブル、4・・・共通サブルーチンプログラム、
5・・・サブルーチンコール命令、6・・・ジャンプテ
ーブル内アドレス、7・・・サブルーチンジャンプ命令
、8・・・サブルーチン、9・・・コールするプログラ
ム、10・・・コールするプログラム、11・・・共通
サブルーチン(変更前)、12・・・共通サブルーチン
(変更後)。 第1図 第2UA

Claims (1)

  1. 【特許請求の範囲】 1、一つ以上のプログラムと、上記プログラムに共通に
    使用される共通サブルーチンから成り、上記プログラム
    と上記共通サブルーチンは、各各独立にリンクエデイツ
    トするプログラムシステムにおいて、上記共通サブルー
    チンの各サブルーチンへジヤンプする命令から成るジャ
    ンプテーブルを固定アドレスに設け、上記プログラムか
    ら、上記ジャンプテーブルのジャンプ命令へジャンプす
    る事により、目的の共通サブルーチンを実行する事を特
    徴とする共通サブルーチンリンク方法。 2、前記共通サブルーチンの各称と、前記ジャンプテー
    ブル内のジャンプ命令のアドレスとを対応づけるモジュ
    ールを設け、上記プログラムとリンクエデイツトする事
    により、上記プログラムが、共通サブルーチン各称でコ
    ールする事を特徴とする第1項記載の共通サブルーチン
    リンク方法。 3、前記ジャンプテーブルに、前記共通サブルーチンの
    アドレスを与える方法として、ジャンプテーブルのジャ
    ンプ先のシンボルを、共通サブルーチンのシンボルとし
    て、全ての共通サブルーチンと共にリンクエデイツトす
    る事を特徴とする共通サブルーチンリンク方法。 4、前記ジャンプテーブルに、前記共通サブルーチンの
    アドレスを与える方法として、各々の共通サブルーチン
    をロードすることに、ジャンプテーブルに、ロードアド
    レスを登録する事を特徴とする共通サブルーチンリンク
    方法。
JP2581089A 1989-02-06 1989-02-06 共通サブル―チンリンク方法 Pending JPH02206838A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2581089A JPH02206838A (ja) 1989-02-06 1989-02-06 共通サブル―チンリンク方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2581089A JPH02206838A (ja) 1989-02-06 1989-02-06 共通サブル―チンリンク方法

Publications (1)

Publication Number Publication Date
JPH02206838A true JPH02206838A (ja) 1990-08-16

Family

ID=12176229

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2581089A Pending JPH02206838A (ja) 1989-02-06 1989-02-06 共通サブル―チンリンク方法

Country Status (1)

Country Link
JP (1) JPH02206838A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2458556A (en) * 2008-03-24 2009-09-30 Nvidia Corp Indirect function calls in a synchronous parallel thread processor
JP2014010661A (ja) * 2012-06-29 2014-01-20 Fujitsu Ltd 分岐アドレス管理プログラム、方法、及び装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2458556A (en) * 2008-03-24 2009-09-30 Nvidia Corp Indirect function calls in a synchronous parallel thread processor
GB2458556B (en) * 2008-03-24 2010-07-07 Nvidia Corp Indirect function call instructions in a synchronous parallel thread processor
US8312254B2 (en) 2008-03-24 2012-11-13 Nvidia Corporation Indirect function call instructions in a synchronous parallel thread processor
JP2014010661A (ja) * 2012-06-29 2014-01-20 Fujitsu Ltd 分岐アドレス管理プログラム、方法、及び装置

Similar Documents

Publication Publication Date Title
AU5801294A (en) An apparatus for executing a plurality of program segments having different object code types in a single program or processor environment
JPH01154267A (ja) 入出力機器制御プログラムのアドレス解決方法
JPH04245543A (ja) サブプログラム呼び出しを実行する方法および装置と            コンパイラ装置
JPH02206838A (ja) 共通サブル―チンリンク方法
JPS6378231A (ja) 部分的プログラム結合方式
JPH0683597A (ja) オブジェクト指向プログラム開発装置およびオブジェクト指向プログラム開発方法
JPS6232497B2 (ja)
JP3140028B2 (ja) サブルーチンの引数の受け渡し方式
JPH01307825A (ja) インターフェイスモジュールを介する動的リンク実行方式
JPS63311439A (ja) コ−ル・リタ−ン方式
JPH02133825A (ja) コンパイル方式
JPS62121549A (ja) Osシミユレ−タの高速化方式
JPS6324422A (ja) セグメント方式計算機における2種以上の呼出し手順の共存方式
JPH01267731A (ja) セグメントオーバレイプログラムの作成方式
JPS63195731A (ja) プログラム組込み方式
JPS62171036A (ja) コンパイラのモジユ−ル共用方式
JPH01309133A (ja) 関数呼び出し処理方法
JPS63184136A (ja) 最適化処理方式
JPH0731596B2 (ja) 条件付きサブルーチン呼出し方式
JPH064319A (ja) オペレーティング・システムにおける共有ルーチン管理方式
JPS63228230A (ja) プロセス実行制御方式
JPH02231639A (ja) サービスプログラム呼出し方式
JPS61231634A (ja) プログラムカウンタ回路
JPH02118731A (ja) 言語間リンクのオーバレイ制御方式
JPH0561673A (ja) オブジエクトプログラムの動的リンク方式