JPS63311439A - コ−ル・リタ−ン方式 - Google Patents
コ−ル・リタ−ン方式Info
- Publication number
- JPS63311439A JPS63311439A JP14765387A JP14765387A JPS63311439A JP S63311439 A JPS63311439 A JP S63311439A JP 14765387 A JP14765387 A JP 14765387A JP 14765387 A JP14765387 A JP 14765387A JP S63311439 A JPS63311439 A JP S63311439A
- Authority
- JP
- Japan
- Prior art keywords
- module
- call
- processing
- name
- return
- 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
Links
- 238000000034 method Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 abstract description 17
- DZQLQEYLEYWJIB-UHFFFAOYSA-O 4-ammoniobutanal Chemical compound [NH3+]CCCC=O DZQLQEYLEYWJIB-UHFFFAOYSA-O 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はコール・リターン方式に関し、特に任意のコー
ル先モジュールから特定のコール元モジュールに直接リ
ターンするコール・リターン方式に間する。
ル先モジュールから特定のコール元モジュールに直接リ
ターンするコール・リターン方式に間する。
従来のコール・リターン方式は、第2図に示すような階
層化モジュール構造で、第3図に示すような処理フロー
の場合、メインルーチンであるMモジュールの処理中に
、CALL命令を見つけると1階層低いAモジュールに
、プログラムの実行シーケンスが移動する。移動後、A
モジュールの処理中に再びCALL命令を見つけると、
再度1階層低いDモジュールにプログラムの実行シーケ
ンスが移動する。以降、前述と同様にFモジュールもし
くはGモジュールまでプログラムの実行シーケンスが移
動し、FモジュールもしくはGモジュールのプログラム
の実行が終了すると、コール元モジュールであるDモジ
ュールにリターンし、DモジュールからAモジュールを
経てMモジュールにリターンする。このときリターンさ
れた各コール元モジュールは、それぞれのCALL命令
以降の処理を構築する必要がある。
層化モジュール構造で、第3図に示すような処理フロー
の場合、メインルーチンであるMモジュールの処理中に
、CALL命令を見つけると1階層低いAモジュールに
、プログラムの実行シーケンスが移動する。移動後、A
モジュールの処理中に再びCALL命令を見つけると、
再度1階層低いDモジュールにプログラムの実行シーケ
ンスが移動する。以降、前述と同様にFモジュールもし
くはGモジュールまでプログラムの実行シーケンスが移
動し、FモジュールもしくはGモジュールのプログラム
の実行が終了すると、コール元モジュールであるDモジ
ュールにリターンし、DモジュールからAモジュールを
経てMモジュールにリターンする。このときリターンさ
れた各コール元モジュールは、それぞれのCALL命令
以降の処理を構築する必要がある。
上述した従来のコール・リターン方式は、シール先モジ
ュールからコール元モジュールに必ずリターンする方式
を採っており、各モジュールでリターン後の処理を必ず
構築しなければいけない。このためダイナミックステッ
プ数も増えることになり、処理時間を増加させることに
なる。
ュールからコール元モジュールに必ずリターンする方式
を採っており、各モジュールでリターン後の処理を必ず
構築しなければいけない。このためダイナミックステッ
プ数も増えることになり、処理時間を増加させることに
なる。
またコールのネストが複雑になるようなケースでは、プ
ログラムの作成に相当量の工数が係るという欠点がある
。
ログラムの作成に相当量の工数が係るという欠点がある
。
本発明の目的は、任意のコール先モジュールから特定の
コール元モジュールへ直接リターンするコール・リター
ン方式を提供することにある。
コール元モジュールへ直接リターンするコール・リター
ン方式を提供することにある。
本発明のコール・リターン方式は、階層化モジュール構
造におけるモジュールのコール・リターン方式において
、呼び出すモジュールのモジュール名を格納している入
口変数テーブルと、前記入口変数テーブルで指定したモ
ジュールを呼び出すときにコール機能を含んだマクロ命
令のアドレスをワークエリアに退避させモジュールをコ
ールするモジュールコール手段と、このモジュールコー
ル手段により退避させたアドレスを復旧するモジュール
リターン手段とを備えて構成されている。
造におけるモジュールのコール・リターン方式において
、呼び出すモジュールのモジュール名を格納している入
口変数テーブルと、前記入口変数テーブルで指定したモ
ジュールを呼び出すときにコール機能を含んだマクロ命
令のアドレスをワークエリアに退避させモジュールをコ
ールするモジュールコール手段と、このモジュールコー
ル手段により退避させたアドレスを復旧するモジュール
リターン手段とを備えて構成されている。
次に本発明の実施例について図面を参照して説明する。
第1図は本発明の一実施例の処理手順を説明するための
説明図である。
説明図である。
第1図に示すMモジュール1中にコールする相手先モジ
ュールのモジュール名を格納した入口変数テーブル4を
予め定義しておき、Mモジュール1の処理をロジック通
り行う。処理中に“¥W#ABAL (ETBL、NU
M)” (ここで¥W#A B A Lはマクロ名であ
り、ETBLは入口変数テーブルの名称であり、NUM
は入口変数テーブル4の個別部番号である)を検出する
と、NUMの番号のモジュール名と同じモジュールへプ
ログラムの実行シーケンスが移動する。移動後は、¥W
#AEND (X)” (ここで¥W#AENDはマク
ロ名であり、Xはリターン先モジュールのモジュール名
を意味する)を検出するまでそのモジュールのロジック
通りに処理を行う。“¥W#AEND (X)″を検出
すると、Xの内容であるモジュール名と同じモジュール
へプログラムの実行シーケンスが戻る。
ュールのモジュール名を格納した入口変数テーブル4を
予め定義しておき、Mモジュール1の処理をロジック通
り行う。処理中に“¥W#ABAL (ETBL、NU
M)” (ここで¥W#A B A Lはマクロ名であ
り、ETBLは入口変数テーブルの名称であり、NUM
は入口変数テーブル4の個別部番号である)を検出する
と、NUMの番号のモジュール名と同じモジュールへプ
ログラムの実行シーケンスが移動する。移動後は、¥W
#AEND (X)” (ここで¥W#AENDはマク
ロ名であり、Xはリターン先モジュールのモジュール名
を意味する)を検出するまでそのモジュールのロジック
通りに処理を行う。“¥W#AEND (X)″を検出
すると、Xの内容であるモジュール名と同じモジュール
へプログラムの実行シーケンスが戻る。
次に本実施例の動作説明を行う、メインルーチンである
Mモジュールlの処理をロジックに従い通常通り行う、
処理途中で“¥W#ABAL(ETBL、NUM)”を
検出すると、Mモジュール1中に定義しである入口変数
テーブル4をNUMの内容に基いて参照(この場合、S
モジュール)する。入口変数テーブル4の中には、呼び
出す各モジュールのモジュール名が格納されている。こ
の格納されている各モジュール名のアドレスをリンカ−
がリンク時に、アドレス専用テーブル(図示省略)に自
動的に格納し、該当するモジュール名のアドレスを用い
ることでプログラムの実行シーケンスが移動する。この
実施例の場合は、Sモジュール2へ移動する。このとき
、“¥W#ABAL (ETBL、NUM)内でコンパ
イラ作業域アドレスをワークエリアに退避させておく。
Mモジュールlの処理をロジックに従い通常通り行う、
処理途中で“¥W#ABAL(ETBL、NUM)”を
検出すると、Mモジュール1中に定義しである入口変数
テーブル4をNUMの内容に基いて参照(この場合、S
モジュール)する。入口変数テーブル4の中には、呼び
出す各モジュールのモジュール名が格納されている。こ
の格納されている各モジュール名のアドレスをリンカ−
がリンク時に、アドレス専用テーブル(図示省略)に自
動的に格納し、該当するモジュール名のアドレスを用い
ることでプログラムの実行シーケンスが移動する。この
実施例の場合は、Sモジュール2へ移動する。このとき
、“¥W#ABAL (ETBL、NUM)内でコンパ
イラ作業域アドレスをワークエリアに退避させておく。
Sモジュール2からTモジュール3をコールするときに
は、通常のコール命令を使用し、プログラムの実行シー
ケンスが移動する。
は、通常のコール命令を使用し、プログラムの実行シー
ケンスが移動する。
処理途中で“¥W#AEND (X)”を検出すると、
Xの内容のモジュール名と同じモジュール内でワークエ
リアに退避させたコンパイラ作業域アドレスを復旧させ
ることにより、Xの内容のモジュール名と同じモジュー
ルへ直接リターンすることができる。
Xの内容のモジュール名と同じモジュール内でワークエ
リアに退避させたコンパイラ作業域アドレスを復旧させ
ることにより、Xの内容のモジュール名と同じモジュー
ルへ直接リターンすることができる。
以上説明したように本発明のコール・リターン方式は、
任意のコール先モジュールから特定のコール元モジュー
ルへ、直接リターンすることを可能としたことにより、
従来方式のようにリターン時に各モジュールで後処理を
構築する必要がなく、ダイナミックステップの削減およ
び処理時間の短縮が図れるという効果がある。
任意のコール先モジュールから特定のコール元モジュー
ルへ、直接リターンすることを可能としたことにより、
従来方式のようにリターン時に各モジュールで後処理を
構築する必要がなく、ダイナミックステップの削減およ
び処理時間の短縮が図れるという効果がある。
第1図は本発明の一実施例処理手順を説明する説明図、
第2図は階層化されたモジュールの構成図、第3図は従
来のコール・リターン方式の処理フローの説明図である
。 1・・・Mモジュール、2・・・Sモジュール、3・・
・Tモジュール、4・・・入口変数テーブル。 1〜−1?′ 躬2図
第2図は階層化されたモジュールの構成図、第3図は従
来のコール・リターン方式の処理フローの説明図である
。 1・・・Mモジュール、2・・・Sモジュール、3・・
・Tモジュール、4・・・入口変数テーブル。 1〜−1?′ 躬2図
Claims (1)
- 階層化モジュール構造におけるモジュールのコール・リ
ターン方式において、呼び出すモジュールのモジュール
名を格納している入口変数テーブルと、前記入口変数テ
ーブルで指定したモジュールを呼び出すときにコール機
能を含んだマクロ命令のアドレスをワークエリアに退避
させモジュールをコールするモジュールコール手段と、
このモジュールコール手段により退避させたアドレスを
復旧するモジュールリターン手段とを備えたことを特徴
とするコール・リターン方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14765387A JPS63311439A (ja) | 1987-06-12 | 1987-06-12 | コ−ル・リタ−ン方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14765387A JPS63311439A (ja) | 1987-06-12 | 1987-06-12 | コ−ル・リタ−ン方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63311439A true JPS63311439A (ja) | 1988-12-20 |
Family
ID=15435215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14765387A Pending JPS63311439A (ja) | 1987-06-12 | 1987-06-12 | コ−ル・リタ−ン方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS63311439A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008530712A (ja) * | 2005-02-18 | 2008-08-07 | クゥアルコム・インコーポレイテッド | 復帰スタックを管理する方法および装置 |
-
1987
- 1987-06-12 JP JP14765387A patent/JPS63311439A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008530712A (ja) * | 2005-02-18 | 2008-08-07 | クゥアルコム・インコーポレイテッド | 復帰スタックを管理する方法および装置 |
JP2012123810A (ja) * | 2005-02-18 | 2012-06-28 | Qualcomm Inc | 復帰スタックを管理する方法および装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107656933A (zh) | 一种语音播报方法及装置 | |
JPS63311439A (ja) | コ−ル・リタ−ン方式 | |
JPS6232497B2 (ja) | ||
JPH10293691A (ja) | レジスタ割り付け方法 | |
JPH02206838A (ja) | 共通サブル―チンリンク方法 | |
JPS63156255A (ja) | インタプリタにおけるオ−バレイ方法 | |
JPH0368417B2 (ja) | ||
JPH01193940A (ja) | オブジェクト指向言語による時間の処理方式 | |
JPS63247837A (ja) | 例外処理方式 | |
JPS61131124A (ja) | 会話入力処理方式 | |
JPH04170643A (ja) | 最適セグメンテーション決定システム | |
JPS584451A (ja) | 関数型情報処理装置 | |
JPH02199540A (ja) | 呼び出し文の自動生成方式 | |
JPH0341518A (ja) | プログラムの呼出し方式 | |
JPS62216042A (ja) | デ−タ領域のメモリ割付方式 | |
JPH04138530A (ja) | ソフトウェア割り込み制御方式 | |
JPH02214942A (ja) | 親ロードモジュールへの制御移行機能の作成方式 | |
JPH01292501A (ja) | 制御情報/状態関係処理方式 | |
JPS63180129A (ja) | プログラム結合方式 | |
JPS62226334A (ja) | 汎用宣言マクロ定義方式 | |
JPS628230A (ja) | プログラム特殊化方式 | |
JPS62216036A (ja) | プログラム決定方式 | |
JPS62137641A (ja) | 高級言語のコンパイラ | |
JPH03103975A (ja) | 記憶要素割当て支援装置 | |
JPH09311792A (ja) | レジスタ割り付け方法 |