JPS6297038A - プログラム実行方式 - Google Patents
プログラム実行方式Info
- Publication number
- JPS6297038A JPS6297038A JP23530385A JP23530385A JPS6297038A JP S6297038 A JPS6297038 A JP S6297038A JP 23530385 A JP23530385 A JP 23530385A JP 23530385 A JP23530385 A JP 23530385A JP S6297038 A JPS6297038 A JP S6297038A
- Authority
- JP
- Japan
- Prior art keywords
- area
- address
- stack
- work area
- program
- 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
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、記憶領域内にスタック領域をもつ演算装置に
おいて、該スタック領域とは別に前記記憶領域内に作業
領域を設け、制御プログラムにより呼び出されるサブル
ーチンパッケージの実行時において、演算途中結果など
を前記作業領域に一時格納するようにした演算装置にお
けるプログラム実行方式に関するものである。
おいて、該スタック領域とは別に前記記憶領域内に作業
領域を設け、制御プログラムにより呼び出されるサブル
ーチンパッケージの実行時において、演算途中結果など
を前記作業領域に一時格納するようにした演算装置にお
けるプログラム実行方式に関するものである。
制御プログラムにより呼び出されるサブルーチンパッケ
ージの実行時において、演算の途中結果などのデータを
、一時的に記憶する方法として従来から知られているも
のには、以下の2つの方法がある。
ージの実行時において、演算の途中結果などのデータを
、一時的に記憶する方法として従来から知られているも
のには、以下の2つの方法がある。
■演算処理装置内にレジスタを用意しておき、これを利
用する方法。
用する方法。
■記憶領域内にスタック領域をもつ演算装置では、PU
SH命令(書き込み)、POP命令(読み出し)の実行
によって、該スタック領域にラースト・イン・ファース
ト・アウトの原則で途中結果などのデータを退避(一時
記憶)させ、或いは取り出す方法。
SH命令(書き込み)、POP命令(読み出し)の実行
によって、該スタック領域にラースト・イン・ファース
ト・アウトの原則で途中結果などのデータを退避(一時
記憶)させ、或いは取り出す方法。
ところが、上述の方法■の場合、処理装置内に設けるレ
ジスタの数には限りがあるために、レジスタが不足する
。さらに、足りないレジスタを有効に利用するためには
、メインプログラムによってレジスタに格納された、保
存しておきたいデータを、PUSH,POP命令の実行
によりスタック領域に退避させる必要があり、そのため
のプログラミングが複雑になり、かつ、不自由であると
いう欠点があった。
ジスタの数には限りがあるために、レジスタが不足する
。さらに、足りないレジスタを有効に利用するためには
、メインプログラムによってレジスタに格納された、保
存しておきたいデータを、PUSH,POP命令の実行
によりスタック領域に退避させる必要があり、そのため
のプログラミングが複雑になり、かつ、不自由であると
いう欠点があった。
また、上記方法■の場合、退避させるべきデータの数が
多くなってPUSH,POP命令を多数用いると、プロ
グラムが複雑になるうえに、スタック領域の先頭には、
サブルーチンパッケージの実行終了後に復帰すべき主プ
ログラム上のアドレスが復帰アドレスとして格納されて
いるために、プログラム上のミスでPUSH命令とPO
P命令の数が対応しない事態が発生したりすると、サブ
ルーチンパッケージから主プログラムに復帰する時に主
プログラム上の誤ったアドレスに復帰してしまい、プロ
グラムが暴走することがある。
多くなってPUSH,POP命令を多数用いると、プロ
グラムが複雑になるうえに、スタック領域の先頭には、
サブルーチンパッケージの実行終了後に復帰すべき主プ
ログラム上のアドレスが復帰アドレスとして格納されて
いるために、プログラム上のミスでPUSH命令とPO
P命令の数が対応しない事態が発生したりすると、サブ
ルーチンパッケージから主プログラムに復帰する時に主
プログラム上の誤ったアドレスに復帰してしまい、プロ
グラムが暴走することがある。
このため、プログラムの作成に際しては、プログラムに
書き込むPUSH命令とPOP命令の数の管理に余分な
注意を必要としプログラマの負担が重くなる。また、こ
のような余分な注意を払っても、ミスは発生し勝ちであ
り、このため結果的にプログラムにおける信頼性の低下
を招きやすくなるという欠点があった。
書き込むPUSH命令とPOP命令の数の管理に余分な
注意を必要としプログラマの負担が重くなる。また、こ
のような余分な注意を払っても、ミスは発生し勝ちであ
り、このため結果的にプログラムにおける信頼性の低下
を招きやすくなるという欠点があった。
そこで本発明においては、制御プログラムによって呼び
出されるサブルーチンパッケージの実行時において必要
となるデータの一時的記憶手段を用意するに際し、その
ために必要なプログラム上の処理すなわちプログラミン
グを簡単化し、しかもPUSH,POP命令の数の管理
を誤った場合に生じるプログラムの暴走などが本来的に
起り得ないようにすること、を解決すべき問題点として
いる。従って本発明は、上述のことを可能にするプログ
ラム実行方式を提供することを目的とする。
出されるサブルーチンパッケージの実行時において必要
となるデータの一時的記憶手段を用意するに際し、その
ために必要なプログラム上の処理すなわちプログラミン
グを簡単化し、しかもPUSH,POP命令の数の管理
を誤った場合に生じるプログラムの暴走などが本来的に
起り得ないようにすること、を解決すべき問題点として
いる。従って本発明は、上述のことを可能にするプログ
ラム実行方式を提供することを目的とする。
〔問題点を解決するための手段および作用〕上記目的を
達成するため、本発明は、記憶領域内にスタック領域を
もつ演算装置において、該スタック領域とは別に前記記
憶領域内に設ける作業領域の先頭アドレスを格納するポ
インタレジスタ(以下、QBRレジスタと云う)を用意
しておき、制御プログラムにより呼び出されたサブルー
チンの実行に際し、前記スタック領域の先頭アドレスを
示すスタックポインタのアドレスを前記作業領域の先頭
アドレスとして前記QBRレジスタに取り込み、それと
共に、演算の途中結果などを一時記憶させるための領域
として、プログラマがプログラムにおいて指定したワー
ド数だけ、前記QBRレジスタに格納された先頭アドレ
スに続いて作業領域を確保することにより、前記スタッ
クポインタは該ワード数だけそのアドレスをずらしてお
き・前記サブルーチンの終了時には、前記作業領域を消
滅させてスタックポインタを元のアドレスに復帰させる
ようにしたことを特徴としている。
達成するため、本発明は、記憶領域内にスタック領域を
もつ演算装置において、該スタック領域とは別に前記記
憶領域内に設ける作業領域の先頭アドレスを格納するポ
インタレジスタ(以下、QBRレジスタと云う)を用意
しておき、制御プログラムにより呼び出されたサブルー
チンの実行に際し、前記スタック領域の先頭アドレスを
示すスタックポインタのアドレスを前記作業領域の先頭
アドレスとして前記QBRレジスタに取り込み、それと
共に、演算の途中結果などを一時記憶させるための領域
として、プログラマがプログラムにおいて指定したワー
ド数だけ、前記QBRレジスタに格納された先頭アドレ
スに続いて作業領域を確保することにより、前記スタッ
クポインタは該ワード数だけそのアドレスをずらしてお
き・前記サブルーチンの終了時には、前記作業領域を消
滅させてスタックポインタを元のアドレスに復帰させる
ようにしたことを特徴としている。
以下、本発明の詳細な説明する。なお、これまでサブル
ーチンパッケージという用語を用いてきたが、それと同
じ意味の実用的な用語ファンクション・モジュール(以
後、F M < F unction Module
)と呼ぶ)を便宜上、今後は使用して実施例を3例、以
下に示す。
ーチンパッケージという用語を用いてきたが、それと同
じ意味の実用的な用語ファンクション・モジュール(以
後、F M < F unction Module
)と呼ぶ)を便宜上、今後は使用して実施例を3例、以
下に示す。
但し、ここでは、主プログラムとFMとの間でやりとり
をするデータとしてのパラメータを、n(P)と記述し
、nはパラメータの認識番号、(P)はパラメータであ
ることを表す記号とする。また、記憶領域にスタック領
域とは別に設ける作業領域をm(0)と記述し、mは作
業領域の認識番号、(ロ)は作業領域であることを表す
記号とする。
をするデータとしてのパラメータを、n(P)と記述し
、nはパラメータの認識番号、(P)はパラメータであ
ることを表す記号とする。また、記憶領域にスタック領
域とは別に設ける作業領域をm(0)と記述し、mは作
業領域の認識番号、(ロ)は作業領域であることを表す
記号とする。
(1) ・・j;吉言 における 施す。
第1図は本発明の一実施例におけるプログラムの説明図
である。すなわち、記憶領域にスタック領域とは別に設
けた作業領域を用いて、主プログラムからFMlに渡さ
れるデータとしてのパラメータ1(P)、2(P)、3
(P)の平均をとり、その結果をパラメータ4(P)と
して書き込むという機能をもつFMをFMIとして想定
する。
である。すなわち、記憶領域にスタック領域とは別に設
けた作業領域を用いて、主プログラムからFMlに渡さ
れるデータとしてのパラメータ1(P)、2(P)、3
(P)の平均をとり、その結果をパラメータ4(P)と
して書き込むという機能をもつFMをFMIとして想定
する。
第2図は、このFMIの実行時における作業領域の処理
内容説明図である。
内容説明図である。
以下、第1図、第2図を参照して処理動作を説明する。
主プログラム上で、FMCI (FM番号1のFMを
呼び出せ、Cはコールの意味)という命令が発生し、F
MIヘジャンプした所から説明を始める。
呼び出せ、Cはコールの意味)という命令が発生し、F
MIヘジャンプした所から説明を始める。
11−1)F番号1番のFM内にデータを一時記憶する
ための作業領域(アドレス)を2つ(0(Q) 、 1
(Q) )とるという命令(第1図■)を実行する。
ための作業領域(アドレス)を2つ(0(Q) 、 1
(Q) )とるという命令(第1図■)を実行する。
なお、第1図■において、FMSとあるSはスタートを
意味し、その次の数字1はFM番号を、更に次の数字2
は作業領域の数を示す。
意味し、その次の数字1はFM番号を、更に次の数字2
は作業領域の数を示す。
このとき、記憶領域におけるスタック領域の現在の先頭
アドレスであるスタックポインタのアドレスが作業領域
の先頭アドレスを格納する領域(以後、 QB R<Q
Ba5e Register > と呼ぶ)に格納さ
れ、スタックポインタのアドレスは、用意される作雫領
域の数だけ、つまり2だけ増加する(+2.)(第2図
■参照)。
アドレスであるスタックポインタのアドレスが作業領域
の先頭アドレスを格納する領域(以後、 QB R<Q
Ba5e Register > と呼ぶ)に格納さ
れ、スタックポインタのアドレスは、用意される作雫領
域の数だけ、つまり2だけ増加する(+2.)(第2図
■参照)。
なお、第2図において、IOは作業領域の先頭アドレス
を格納する領域QBRを示し、11はスタックポインタ
SPのアドレスを格納する領域を示し、12は記憶領域
(スタック領域と作業領域)を示し、これら各領域の内
容が、第1図におけるFMIの実行経過に伴い、■−〇
・・−−0と推移してゆくのである。
を格納する領域QBRを示し、11はスタックポインタ
SPのアドレスを格納する領域を示し、12は記憶領域
(スタック領域と作業領域)を示し、これら各領域の内
容が、第1図におけるFMIの実行経過に伴い、■−〇
・・−−0と推移してゆくのである。
従って、第2図においで、■に先立つ初期状態において
は、QBRIOは空き、スタックポインタアドレス(以
下、SPアドレスと記すこともある)格納領域11には
、例えば900番地が格納されており、従って記憶領域
12の900番地はスタックポイント(SP)であり、
以下901゜902番地とスタック領域が続いている。
は、QBRIOは空き、スタックポインタアドレス(以
下、SPアドレスと記すこともある)格納領域11には
、例えば900番地が格納されており、従って記憶領域
12の900番地はスタックポイント(SP)であり、
以下901゜902番地とスタック領域が続いている。
第1図における命令FMIの■の実行により、第2図で
は、各領域の内容が初期状態から■へ移行することはす
でに述べた。
は、各領域の内容が初期状態から■へ移行することはす
でに述べた。
1−2)パラメータ1 (P)、 2 (P)で示され
るデータの和を作業領域0(Q)に記憶するという命令
(第1図■)を実行する。
るデータの和を作業領域0(Q)に記憶するという命令
(第1図■)を実行する。
このときのQBRIOで示される記憶領域12のアドレ
ス(この場合、200番地で作業領域0(Q))にパラ
メータ1 (P)、2(P)の和を書き込む(第2図■
)。
ス(この場合、200番地で作業領域0(Q))にパラ
メータ1 (P)、2(P)の和を書き込む(第2図■
)。
1−3)パラメータ3(P)の示すデータと、作業領域
0 (Q)内のデータの和を作業領域1 (Q)に記憶
するという命令(第1図◎)を実行する。
0 (Q)内のデータの和を作業領域1 (Q)に記憶
するという命令(第1図◎)を実行する。
このとき、作業領域0 (Q) とパラメータ3(P
)の和がQBRIOの内容に1を加算したアドレス(作
業領域1 (Q))に格納される(第2図O)。
)の和がQBRIOの内容に1を加算したアドレス(作
業領域1 (Q))に格納される(第2図O)。
1−4)作業領域1(Q)で示されるデータを実数3で
徐算し、その結果を、パラメータ4(P)に書き込むと
いう命令(第1図◎)を実行する。
徐算し、その結果を、パラメータ4(P)に書き込むと
いう命令(第1図◎)を実行する。
このとき作業領域1(Q)すなわち、(QBR)+1で
示されるアドレスに格納されているデータを3で割り、
結果をパラメータ4(P)に書き込む。
示されるアドレスに格納されているデータを3で割り、
結果をパラメータ4(P)に書き込む。
1−1−5)Fの終了処理を行う命令(第1図■)では
、FMIの作業領域0 (Q)、 1 (Q)を解放し
て元のスタック領域に戻すために、スタックポインタS
Pのアドレスを900番地とし、FMlを呼び出す前つ
まり初期状態のスタックポインタに復帰させる。
、FMIの作業領域0 (Q)、 1 (Q)を解放し
て元のスタック領域に戻すために、スタックポインタS
Pのアドレスを900番地とし、FMlを呼び出す前つ
まり初期状態のスタックポインタに復帰させる。
以上のように、この発明による作業領域を用いれば、プ
ログラマは、スタック領域を意識することなしに、一時
記憶のための作業領域を自由にプログラム上で確保でき
、PUSH命令やPOP命令の個数管理が必要であった
ときに比べ、間違いの少ない、効率の良いプログラムを
記述できる。
ログラマは、スタック領域を意識することなしに、一時
記憶のための作業領域を自由にプログラム上で確保でき
、PUSH命令やPOP命令の個数管理が必要であった
ときに比べ、間違いの少ない、効率の良いプログラムを
記述できる。
(2)FMのネスティングにおける・施例。
第3図はこの発明により設けた作業領域を使ってFMの
ネスティングを行う場合の実施例を説明するためのプロ
グラム説明図である。
ネスティングを行う場合の実施例を説明するためのプロ
グラム説明図である。
ここでは、先の実施例で説明した平均をとるというFM
を呼びだし、作業領域0 (Q)、 1 ([1)、
2 ((1)。
を呼びだし、作業領域0 (Q)、 1 ([1)、
2 ((1)。
3(ロ)を設けるというデータをパラメータとじて渡し
、その処理の結果をパラメータ1(P)に書き込み、復
帰する場合を例として示す。
、その処理の結果をパラメータ1(P)に書き込み、復
帰する場合を例として示す。
第4図は、第3図に示したプログラムの実行時における
作業領域の処理内容の説明図である。
作業領域の処理内容の説明図である。
以下、第3図、第4図を参照して処理動作を説明する。
2−1)前述の1−1)と同様、FM番号2番のFMの
実行に際し、O(Q)、 1 (Q)、 2 (Q)、
3 (ロ)、の4つの作業領域をとるという命令(第
3図■)を実行する。
実行に際し、O(Q)、 1 (Q)、 2 (Q)、
3 (ロ)、の4つの作業領域をとるという命令(第
3図■)を実行する。
このとき、領域11に格納されている現在のスタックポ
インタSPのアドレス(900番地とする)をQBRI
Oに格納し、スタックポインタSPのアドレスを、用意
する作業領域の数つまり4だけ増加する(+4)(第4
図■)。
インタSPのアドレス(900番地とする)をQBRI
Oに格納し、スタックポインタSPのアドレスを、用意
する作業領域の数つまり4だけ増加する(+4)(第4
図■)。
2−2)作業領域0 (11)に1、作業領域1(Q)
に2、作業領域2(0)に3を書き込むという命令を実
行する(第3図■)。
に2、作業領域2(0)に3を書き込むという命令を実
行する(第3図■)。
2−3)前述の実施例で用いた平均を求めるFMlを呼
びだし作業領域0 (Q)、 1 (Q)、 2 ((
1)、 3 (Q)を設けるというデータをパラメータ
として該FM1に渡しく第3図■)、FMIにおいて、
作業領域を2つ(0(Q)、 1 (Q))とるという
命令(第3図■)を実行する。
びだし作業領域0 (Q)、 1 (Q)、 2 ((
1)、 3 (Q)を設けるというデータをパラメータ
として該FM1に渡しく第3図■)、FMIにおいて、
作業領域を2つ(0(Q)、 1 (Q))とるという
命令(第3図■)を実行する。
このとき、領域11に格納されている現在のスタックポ
インタSPのアドレスすなわち904番地をQBRlo
に格納し、スタックポインタSPのアドレスを、2つと
った作業領域の数っまり2だけ増加(+2)する(第4
図■)。
インタSPのアドレスすなわち904番地をQBRlo
に格納し、スタックポインタSPのアドレスを、2つと
った作業領域の数っまり2だけ増加(+2)する(第4
図■)。
2−2−4)F内の平均値を求める処理を実行する(第
3図■)と先の実施例で説明したように、パラメータ4
(P)、すなわち作業領域3(Q)に平均をとった結果
、(=2)が書き込まれる(第4図■)。
3図■)と先の実施例で説明したように、パラメータ4
(P)、すなわち作業領域3(Q)に平均をとった結果
、(=2)が書き込まれる(第4図■)。
2−2−5)Fの処理が終わると(第3図■)、FMI
の作業領域0(0)を解放するため、スタックポインタ
SPのアドレスを904番地とし、QBRIOにFM2
の作業領域の先頭アドレスすなわち900番地を再び格
納する。こうすることによってFMIを呼び出す前のス
タックポインタに復帰する(第4図■)。
の作業領域0(0)を解放するため、スタックポインタ
SPのアドレスを904番地とし、QBRIOにFM2
の作業領域の先頭アドレスすなわち900番地を再び格
納する。こうすることによってFMIを呼び出す前のス
タックポインタに復帰する(第4図■)。
2−6)作業領域3(Q)で示されるデータすなわち2
をパラメータ1(P)に書き込む(第3図■)。
をパラメータ1(P)に書き込む(第3図■)。
2−2−7)Fの処理が終わると(第3図■)、FM2
の作業領域を解放するためにスタックポインタSPのア
ドレスを900番地とし、FM2を呼び出す前のスタッ
クポインタに復帰する(第4図■)。
の作業領域を解放するためにスタックポインタSPのア
ドレスを900番地とし、FM2を呼び出す前のスタッ
クポインタに復帰する(第4図■)。
以上のように、FMのネスティングが何段も続く場合に
も、この発明により設けた作業領域を用いると、プログ
ラムを複雑化することなく、容易にデータを保持できる
という利点が得られる。
も、この発明により設けた作業領域を用いると、プログ
ラムを複雑化することなく、容易にデータを保持できる
という利点が得られる。
(3)ビット処理における実施例。
この発明により、FMの実行用に設けた作業領域を用い
て、ビット処理を行う場合の実施例として、パラメータ
1 (P) 、 2 (P)で示されるデータを比較し
て、1(P)と2(P)が等しければパラメータ3(P
)にOを、■(P)が2(P)より大きければパラメー
タ3(P)に−1を、1(P)が2(P)より小さけれ
ばパラメータ3(P)に1を、書き込む処理のプログラ
ム例を第5図に示す。
て、ビット処理を行う場合の実施例として、パラメータ
1 (P) 、 2 (P)で示されるデータを比較し
て、1(P)と2(P)が等しければパラメータ3(P
)にOを、■(P)が2(P)より大きければパラメー
タ3(P)に−1を、1(P)が2(P)より小さけれ
ばパラメータ3(P)に1を、書き込む処理のプログラ
ム例を第5図に示す。
ここで、Q7は作業領域0 (Q)のn番目のビットを
示す。
示す。
第6図は第5図のプログラム処理時における作業領域の
処理内容説明図である。
処理内容説明図である。
第5図、第6図を参照して処理動作を説明する。
3−1)第5図■の命令を実行し、作業領域0(0)を
とる。従って第6図において、QBRIOにそれまでの
スタックポインタSPのアドレス900番地を格納し、
とった作業領域は1つであるから、領域11に格納され
るスタックポインタSPのアドレスは901番地となる
。
とる。従って第6図において、QBRIOにそれまでの
スタックポインタSPのアドレス900番地を格納し、
とった作業領域は1つであるから、領域11に格納され
るスタックポインタSPのアドレスは901番地となる
。
3−2)第5図■の命令を実行しくなお、CEはCom
pare Equalを意味する)、もし、パラメー
タ1(P)と2(P)が等しいと、第6図の作業領域0
(Q)の0ビツト目、すなわちQoに1を書き込む。
pare Equalを意味する)、もし、パラメー
タ1(P)と2(P)が等しいと、第6図の作業領域0
(Q)の0ビツト目、すなわちQoに1を書き込む。
3−3)第5図◎の命令を実行しくなおCHはComp
are Highを意味する)、もし、パラメータ1
(P)が2(P)より大なら、第6図の作業領域0
(Q)の1ビット目すなわちQ、に1を書き込む。
are Highを意味する)、もし、パラメータ1
(P)が2(P)より大なら、第6図の作業領域0
(Q)の1ビット目すなわちQ、に1を書き込む。
3−4)第5図◎の命令を実行しくなおCLはComp
are L ohを意味する)、もし、パラメータ1
(P)が2(P)より小なら、第6図の作業領域0(Q
)の2ビット目すなわちQ2に1を書き込む。
are L ohを意味する)、もし、パラメータ1
(P)が2(P)より小なら、第6図の作業領域0(Q
)の2ビット目すなわちQ2に1を書き込む。
3−5)第5図■の命令を実行すると、第6図の作業領
域Q (Q)の0ビ・2ト目が1なら、パラメータ3(
P)にOを書き込む。
域Q (Q)の0ビ・2ト目が1なら、パラメータ3(
P)にOを書き込む。
3−6)第5図■の命令を実行すると、第6図の作業領
域0 (Q)の1ビット目が1なら、パラメータ3(P
)に−1を書き込む。
域0 (Q)の1ビット目が1なら、パラメータ3(P
)に−1を書き込む。
3−7)第5図■の命令を実行すると、第6図の作業領
域0 (Q)の2ビット目が1なら、パラメータ3(P
)に1を書き込む。
域0 (Q)の2ビット目が1なら、パラメータ3(P
)に1を書き込む。
このように、FMIの呼び出し元では、パラメータ3(
P)を参照することにより、パラメータ1(P) 、
2 (P)の大小を判断できる。
P)を参照することにより、パラメータ1(P) 、
2 (P)の大小を判断できる。
以上のように、制御プログラムに欠くことのできない、
ビット処理においても、この発明により設けた作業領域
は有効である。
ビット処理においても、この発明により設けた作業領域
は有効である。
以上説明したように、本発明によれば、スタック領域と
は別に、ファンクションモジュールFM(サブルーチン
パッケージ)毎に必要な数だけの作業領域を設けて演算
途中結果の一時記憶を行わせ、該FMの実行終了と共に
作業領域を解放するようにして、該FMの実行前と実行
後ではスタックポインタは動かないようにしたので、プ
ログラムの暴走は起こり得す、またPUSH,POP命
令はFM実行という目的のためには使用しないので、そ
の使用個数の管理も不要となり、プログラマのプログラ
ミング時の負担が軽減し、プログラミングが簡単化する
という利点がある。
は別に、ファンクションモジュールFM(サブルーチン
パッケージ)毎に必要な数だけの作業領域を設けて演算
途中結果の一時記憶を行わせ、該FMの実行終了と共に
作業領域を解放するようにして、該FMの実行前と実行
後ではスタックポインタは動かないようにしたので、プ
ログラムの暴走は起こり得す、またPUSH,POP命
令はFM実行という目的のためには使用しないので、そ
の使用個数の管理も不要となり、プログラマのプログラ
ミング時の負担が軽減し、プログラミングが簡単化する
という利点がある。
第1図は本発明の一実施例におけるプログラム(FMI
)の説明図、第2図はFMI実行時における作業領域の
処理内容説明図、第3図はこの発明の別の実施例におけ
るプログラム(FM2)説明図、第4図はFM2実行時
における作業領域の処理内容説明図、第5図は本発明の
更に他の実施例におけるプログラムの説明図、第6図は
第5図のプログラム処理時における作業領域の処理内容
の説明図、である。 符号の説明 10・・・QBR(作業領域の先頭アドレス格納領域)
、11・・・スタックポインタアドレス格納領域、12
・・・記憶領域(スタック領域、作業領域)代理人 弁
理士 並 木 昭 夫 代理人 弁理士 松 崎 清 M 2 図 1゜
)の説明図、第2図はFMI実行時における作業領域の
処理内容説明図、第3図はこの発明の別の実施例におけ
るプログラム(FM2)説明図、第4図はFM2実行時
における作業領域の処理内容説明図、第5図は本発明の
更に他の実施例におけるプログラムの説明図、第6図は
第5図のプログラム処理時における作業領域の処理内容
の説明図、である。 符号の説明 10・・・QBR(作業領域の先頭アドレス格納領域)
、11・・・スタックポインタアドレス格納領域、12
・・・記憶領域(スタック領域、作業領域)代理人 弁
理士 並 木 昭 夫 代理人 弁理士 松 崎 清 M 2 図 1゜
Claims (1)
- 1)記憶領域内にスタック領域をもつ演算装置において
、該スタック領域とは別に前記記憶領域内に設ける作業
領域の先頭アドレスを格納するポインタレジスタ(以下
、QBRレジスタと云う)を用意しておき、制御プログ
ラムにより呼び出されたサブルーチンの実行に際し、前
記スタック領域の先頭アドレスを示すスタックポインタ
のアドレスを前記作業領域の先頭アドレスとして前記Q
BRレジスタに取り込み、それと共に、演算の途中結果
などを一時記憶させるための領域として、プログラマが
プログラムにおいて指定したワード数だけ、前記QBR
レジスタに格納された先頭アドレスに続いて作業領域を
確保することにより、前記スタックポインタは該ワード
数だけそのアドレスをずらしておき、前記サブルーチン
の終了時には、前記作業領域を消滅させてスタックポイ
ンタを元のアドレスに復帰させるようにしたことを特徴
とするプログラム実行方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP23530385A JPS6297038A (ja) | 1985-10-23 | 1985-10-23 | プログラム実行方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP23530385A JPS6297038A (ja) | 1985-10-23 | 1985-10-23 | プログラム実行方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS6297038A true JPS6297038A (ja) | 1987-05-06 |
Family
ID=16984115
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP23530385A Pending JPS6297038A (ja) | 1985-10-23 | 1985-10-23 | プログラム実行方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6297038A (ja) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5474653A (en) * | 1977-11-28 | 1979-06-14 | Toshiba Corp | Stack control system |
| JPS5843043A (ja) * | 1981-09-08 | 1983-03-12 | Oki Electric Ind Co Ltd | デ−タ処理装置の呼び出し命令方式 |
| JPS59135551A (ja) * | 1983-01-21 | 1984-08-03 | Matsushita Electric Ind Co Ltd | 高機能命令計算機 |
| JPS6074036A (ja) * | 1983-09-30 | 1985-04-26 | Fujitsu Ltd | スタツク計算機 |
-
1985
- 1985-10-23 JP JP23530385A patent/JPS6297038A/ja active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5474653A (en) * | 1977-11-28 | 1979-06-14 | Toshiba Corp | Stack control system |
| JPS5843043A (ja) * | 1981-09-08 | 1983-03-12 | Oki Electric Ind Co Ltd | デ−タ処理装置の呼び出し命令方式 |
| JPS59135551A (ja) * | 1983-01-21 | 1984-08-03 | Matsushita Electric Ind Co Ltd | 高機能命令計算機 |
| JPS6074036A (ja) * | 1983-09-30 | 1985-04-26 | Fujitsu Ltd | スタツク計算機 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS62242243A (ja) | 情報処理装置 | |
| JPS6122817B2 (ja) | ||
| EP0240108A2 (en) | A data processing system | |
| JPS6297038A (ja) | プログラム実行方式 | |
| JP2001356916A (ja) | メモリブロック化コンパイラ及びプログラム実行方法 | |
| EP1014261A1 (en) | Instruction look-ahead system and method | |
| JPS6053908B2 (ja) | マスクレジスタを使用した演算方式 | |
| JPS6010645B2 (ja) | シ−ケンス制御装置 | |
| JPS5848144A (ja) | デ−タ処理装置の分岐命令制御方式 | |
| JPS61182135A (ja) | 処理選択方法 | |
| JPH036663A (ja) | ベクトルデータ処理方式 | |
| JPS58197548A (ja) | スタツク制御方式 | |
| JPS6020275A (ja) | マルチプロセサの簡易プログラミングシステム | |
| JPH0713770A (ja) | ロードストア型プロセッサの付加的レジスタを利用する際のコンパイル方法 | |
| JPS6126692B2 (ja) | ||
| JP3200277B2 (ja) | シーケンスプログラム処理方法及び装置 | |
| JPS6039246A (ja) | シ−ケンス制御回路 | |
| JPH083792B2 (ja) | 関数呼び出し処理方法 | |
| JPS6142055A (ja) | 入出力制御装置 | |
| JPS592180A (ja) | ベクトルデ−タ処理装置におけるベクトル長変更制御方式 | |
| JPS6239779B2 (ja) | ||
| JPS6238748B2 (ja) | ||
| JPS63163636A (ja) | 並列処理実行方式 | |
| JPS608943A (ja) | 多岐分岐制御方式 | |
| KR20000038908A (ko) | 게임제작 도구에서 다수의 컴퓨터 언어 사용방법 |