JPS5856153A - Subroutine return system - Google Patents
Subroutine return systemInfo
- Publication number
- JPS5856153A JPS5856153A JP56155521A JP15552181A JPS5856153A JP S5856153 A JPS5856153 A JP S5856153A JP 56155521 A JP56155521 A JP 56155521A JP 15552181 A JP15552181 A JP 15552181A JP S5856153 A JPS5856153 A JP S5856153A
- Authority
- JP
- Japan
- Prior art keywords
- data
- subroutine
- return
- processing
- normal
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
【発明の詳細な説明】
本発明は、メインプログラムからサブルーチンに分岐し
て再びメインプログラムに復帰する場合における、サブ
ルーチンリターン方式に関するものである。DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a subroutine return method when branching from a main program to a subroutine and returning to the main program again.
ディスプレイ等の内部制御プログラムにおいては、メイ
ンプログラムのほかにサブルーチンを有し、特定の処理
を行う場合、メインプログラムからサブルーチンに分岐
して処理を行い、その処理が終了したとき再びメインプ
ログラムに復帰するようにすることが多い。Internal control programs such as displays have subroutines in addition to the main program, and when specific processing is to be performed, the main program branches to the subroutine, performs the processing, and returns to the main program when the processing is completed. I often do this.
このようにサブルーチンに分岐してメインプログラムに
復帰する場合における復帰形式としては、従来、サブル
ーチンの出口は1つに固定されていて、中断したメイン
プログラムの次の段階へ復帰するのが、一般であった。Conventionally, when branching to a subroutine and returning to the main program, the exit of the subroutine is usually fixed to one, and the return is generally made to return to the next stage of the main program where it was interrupted. there were.
第1図は、従来のサブルーチンリターン方式を例示して
いる。同図は、データ判定を行うサブルーチンCHEC
K1からメインプログラムに復帰する場合のリターン方
式を示し、(α)はこの場合のフローチャートを、(b
)はこれに対応する命令を示している。ことでCHEC
Klは、復帰情報を設定する必要のあるサブルーチンを
意味する。復帰情報は図示されないレジスタR,にセッ
トされ、正常文字データのとき″0#、正常パターンデ
ータのとき“1″、特殊オーダのとき″2#、エラーデ
ータのとき″3#である。FIG. 1 illustrates a conventional subroutine return method. The figure shows a subroutine CHEC that performs data judgment.
The return method when returning to the main program from K1 is shown, (α) is the flowchart in this case, (b
) indicates the corresponding command. By the way, CHEC
Kl means a subroutine that needs to set return information. The return information is set in a register R, not shown, and is "0#" for normal character data, "1" for normal pattern data, "2#" for special order, and "3#" for error data.
第1図において、はじめ命令BALでサブルーチンCH
ECK1に分岐し、データ判定が行われて判定結果が復
帰情報としてレジスタROにセットされる。次に命令り
によって図示されないレジスタR1にデータ“0”がセ
ットされ、次の命令CでレジスタROの内容とレジスタ
R1の内容とが比較される。比較の結果等しかったとき
は次の命令Bで処理Aへ分岐し、文字データ処理が行わ
れる。一方、比較の結果等しくなかったときは分岐する
ことなく次の命令りでレジスタR1にデータ@1#がセ
ットされ、再び次の命令Cで両レジスタの内容が比較さ
れる。以下、このような手順を繰り返えしてレジスタR
1に順次″″2#、″″3”をロードしながらレジスタ
R,と比較を行ない、等しければ対応する処理C,Dに
分岐し、等しくなければ次の段階に進む。In Fig. 1, the subroutine CH is first commanded by BAL.
The process branches to ECK1, data is judged, and the judgment result is set in register RO as return information. Next, data "0" is set in a register R1 (not shown) by an instruction, and the contents of the register RO and the contents of the register R1 are compared by the next instruction C. If the comparison results are equal, the next instruction B branches to processing A, and character data processing is performed. On the other hand, if the result of the comparison is not equal, data @1# is set in register R1 in the next instruction without branching, and the contents of both registers are compared again in the next instruction C. From now on, repeat these steps to create register R.
1 is sequentially loaded with ``2#'' and ``3'' and compared with the register R. If they are equal, the process branches to corresponding processes C and D, and if they are not equal, the process proceeds to the next step.
従来のサブルーチンリターン方式においては、上述のよ
うな復帰情報判定ルーチンを実行するため、メインプロ
グラムに復帰するときのプログラム走行ステップ数が多
い。第1図の例の場合、ステップ数が最大になるのはエ
ラーデータの場合で4って、エラーデータが判別される
までの走行ステップ数は(10ステツプ+サブルーチン
CHECK1のステップ)である。このようにステップ
数が多くなるのは、サブルーチンの出口が一つに固定さ
れていて、サブルーチンの処理結果を復帰情報としてレ
ジスタにセットし、メインプログラムへの復帰時、呼び
出し元のプログラムで復帰情報判定ルーチンを実行して
始めて処理に移行するようになっているためである。In the conventional subroutine return method, since the return information determination routine as described above is executed, the number of program execution steps when returning to the main program is large. In the example shown in FIG. 1, the maximum number of steps is 4 for error data, and the number of running steps until error data is determined is (10 steps + step of subroutine CHECK1). The reason for this large number of steps is that the exit of a subroutine is fixed to one, and the processing result of the subroutine is set in a register as return information, and when returning to the main program, the return information is stored in the calling program. This is because the process begins only after the determination routine is executed.
本発明は、このような従来技術の欠点を解決しようとす
るものであり、その目的は、復帰情報を必要とせず、従
ってサブルーチン内での復帰情報設定ルーチンと、呼び
出し元プログラムでの復帰情報判定ルーチンとが必要で
なく、プログラム走行ステップ数が大幅に減少し、プロ
グラム走行スピードを向上させることができる方式を提
供することにある。The present invention attempts to solve the drawbacks of the prior art, and its purpose is to eliminate the need for return information, and therefore to create a return information setting routine within a subroutine and a return information determination routine in a calling program. It is an object of the present invention to provide a method that does not require a routine, greatly reduces the number of program running steps, and can improve the program running speed.
以下、実施例について本発明の詳細な説明する。Hereinafter, the present invention will be described in detail with reference to Examples.
第2図は、本発明のサブルーチンリターン方式の一実施
例を示している。同図は、データ判定を行うサブルーチ
ンCHECK2からメインプログラムに復帰する場合の
リターン方式を示し、(α)はこの場合のフローチャー
トを、(b)はこれに対応する命令を示している。ここ
でCHECK2は復帰情報をセットする必要のないサブ
ルーチンを示している。FIG. 2 shows an embodiment of the subroutine return method of the present invention. This figure shows a return method when returning to the main program from the subroutine CHECK2 for determining data, where (α) is a flowchart in this case, and (b) is a corresponding instruction. Here, CHECK2 indicates a subroutine that does not require setting return information.
第2図において、はじめ命令BALでサブルーチンCH
ECK2に分岐し、まず被チエツクデータと正常文字チ
ェックデータとの比較を行う、比較の結果正常文字デー
タであったときは、サブルーチンから正常文字データ復
帰アドレスのXへ復帰することによって、命令Bによっ
て文字データ処理Aに分岐する。比較の結果正常文字デ
ータでなかったときは、次に被チエツクデータと正常パ
ターンチェックデータとを比較する。比較の結果正常パ
ターンデータであったときは、サブルーチンから正常パ
ターンデータ復帰アドレスのX+1へ復帰することによ
って、命令Bによってパターンデータ処理Bに分岐する
。以下同様にしてサブルーチンにおいて特殊オーダチェ
ックデータとの比較全行なって、比較の結果特殊オーダ
であったときは特殊オーダ復帰アドレスのX+2へ復帰
することによってオーダ処理Cへ分岐し、特殊オーダで
なかったときはエラーデータ復帰アドレスのX+3へ復
帰することによってエラー処理りに分岐する。In FIG. 2, the subroutine CH is first commanded by BAL.
Branches to ECK2 and first compares the data to be checked with the normal character check data. If the result of the comparison is normal character data, the subroutine returns to the normal character data return address X, and then the data is returned by instruction B. Branches to character data processing A. If the result of the comparison is that the character data is not normal, then the checked data is compared with the normal pattern check data. If the result of the comparison is normal pattern data, the subroutine returns to the normal pattern data return address X+1 and branches to pattern data processing B in response to instruction B. In the same way, all comparisons with the special order check data are performed in the subroutine, and if the result of the comparison is that it is a special order, the process branches to order processing C by returning to the special order return address X+2 and confirming that it is not a special order. In this case, the program branches to error processing by returning to the error data return address X+3.
第6図は、第2図に例示されたサブルーチンリターン方
式をさらに詳細に説明したものである。FIG. 6 explains in more detail the subroutine return method illustrated in FIG. 2.
同図において、左側はメインプログラムを示し、右側の
鎖線内はデータ判定を行うサブルーチンを示している。In the figure, the left side shows the main program, and the part inside the chain line on the right side shows a subroutine for data determination.
第5図において、被チエツクデータはレジスタROにセ
ットされている。また、レジスタR1には正常文字チェ
ックデータ、正常パターンチェックデータおよび特殊オ
ーダチェックデータが順次セットされて、レジスタRO
の被チエツクデータと比較される。一方復帰アドレスス
タックエリアには、最初の分岐命令MALによって復帰
アドレスXが格納されていて、比較が行われる都度スタ
ックポインタをみることによって、復帰アドレスXが読
み出される。In FIG. 5, the data to be checked is set in register RO. In addition, normal character check data, normal pattern check data, and special order check data are sequentially set in register R1, and register RO
is compared with the checked data. On the other hand, in the return address stack area, the return address X is stored by the first branch instruction MAL, and the return address X is read by looking at the stack pointer each time a comparison is performed.
最初の比較の結果、被チエツクデータが正常文字チェッ
クデータに等しいとき社、復帰アドレスは書き替えられ
ず、従ってX番地が指示され、これによってメインプロ
グラムは文字データ処理へ分岐する0次の比較の結果、
被チエツクデータが正常パターンデータに等しければ復
帰アドレスは誉き替えられ、1が加算されてX+1番地
が指示され、これによってパターンデータ処理へ分岐す
る。As a result of the first comparison, if the checked data is equal to the normal character check data, the return address is not rewritten and therefore address X is specified, which causes the main program to branch to character data processing. result,
If the checked data is equal to the normal pattern data, the return address is replaced, 1 is added to indicate address X+1, and the program branches to pattern data processing.
以下同様にして、比較結果が特殊オーダチェックデータ
に等しければ、復帰アドレスはX+2番地が指示されて
オーダ処理へ分岐し、特殊オーダチェックデータに等し
くないときは、復帰アドレスはX+5番地が指示されて
エラー処理へ分岐する。Similarly, if the comparison result is equal to the special order check data, address X+2 is specified as the return address and the process branches to order processing; if the comparison result is not equal to the special order check data, address X+5 is specified as the return address. Branch to error handling.
このように本発明の方式によれば、サブルーチンからメ
インプログラムに復帰する場合におけるサブルーチンの
出口を一つに固定せず、サブルーチン内における処理結
果の条件の数だけ出口を設けて、呼び出し元のプログラ
ムへ復帰するとき、サプルーチyでの処理結果に基づい
て複数個ある出口のいずれかに復帰するようにしたので
、従来の方式のようにサブルーチン内での復帰情報設定
ルーチンと、呼び出し元での復帰情報判定ルーチンとが
必要でなくなって、プログラム走行ステップ数は大幅に
減少する。As described above, according to the method of the present invention, when returning from a subroutine to the main program, the exit of the subroutine is not fixed to one, but the exits are provided as many as the conditions of the processing result in the subroutine, and the calling program When returning to subroutine y, the return is made to one of multiple exits based on the processing result in subroutine y, so unlike the conventional method, the return information setting routine within the subroutine and the return at the caller are required. Since the information determination routine is no longer necessary, the number of program running steps is significantly reduced.
第2図および第6図に示された例の場合、サブルーチン
における判定結果に拘らず、走行ステップ数は常に(2
ステツプ+サブルーチンCHECK2のステップ)であ
って、第1図に例示された従来の方式に比べ、ステップ
数は明らかに小さい。さらにサブルーチンCHECK1
とCHECK2とを比較した場合、サブルーチンCHE
CK2においては復帰情報をセットする必要がないため
、そのステップ数はサブルーチンCHIICK1に比べ
て小さい。従って、本発明の方式によった場合、サブル
ーチンからメインプログラムに復帰する場合の走行ステ
ップ数は、前述の従来方式の場合に比べて大幅に減少す
る。In the examples shown in FIGS. 2 and 6, the number of running steps is always (2) regardless of the determination result in the subroutine.
step + step of subroutine CHECK2), and the number of steps is clearly smaller than in the conventional method illustrated in FIG. Furthermore, subroutine CHECK1
and CHECK2, subroutine CHE
Since there is no need to set return information in CK2, the number of steps is smaller than that in subroutine CHIICK1. Therefore, according to the method of the present invention, the number of running steps when returning from a subroutine to the main program is significantly reduced compared to the case of the conventional method described above.
以上説明したように、本発明のサブルーチンリターン方
式によれば、プログラム走行速度が向上し、高速処理を
要求されるディスプレイ装置の内部制御用プログラム等
の場合、極めて有効である。As described above, the subroutine return method of the present invention improves the program running speed and is extremely effective for internal control programs of display devices that require high-speed processing.
第1し1は従来のサブルーチンリターン方式を示す図、
第2図は本発明のサブルーチンリターン方式の一実施例
を示す図、第3図は第2図に示されたサブルーチンリタ
ーン方式をさらに詳細に示すフローチャートである。
A、B、C,I) ・・・処理、X、X+1.X+2.
X+5−・・復帰アト特許出願人富士通株式会社
代理人弁理士 玉 蟲 入玉 部(外3名)第1図
(α)
第2図
(α)
(b)
(b)The first diagram shows the conventional subroutine return method.
FIG. 2 is a diagram showing an embodiment of the subroutine return method of the present invention, and FIG. 3 is a flowchart showing the subroutine return method shown in FIG. 2 in more detail. A, B, C, I)...processing, X, X+1. X+2.
X+5-...Returning Atto Patent Applicant Fujitsu Ltd. Representative Patent Attorney Tama Mushi Iridama Department (3 people) Figure 1 (α) Figure 2 (α) (b) (b)
Claims (1)
を有するプログラムにおいて、サブルーチンからメイン
プログラムに復帰する際の出口を、サブルーチンにおけ
る処理結果の条件数に等しい数だけ設け、サブルーチン
から呼び出し元プログラムへの復帰時、サブルーチンで
の処理結果に基づいて複数個の出口のいずれか一つを選
択して復帰することを特徴とするサブルーチンリターン
方式。In a program having a subroutine that is executed by branching from the main program, the number of exits for returning from the subroutine to the main program is equal to the number of conditions of processing results in the subroutine, and when returning from the subroutine to the calling program, A subroutine return method characterized by selecting one of a plurality of exits and returning based on the processing result of the subroutine.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56155521A JPS5856153A (en) | 1981-09-30 | 1981-09-30 | Subroutine return system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56155521A JPS5856153A (en) | 1981-09-30 | 1981-09-30 | Subroutine return system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS5856153A true JPS5856153A (en) | 1983-04-02 |
Family
ID=15607879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP56155521A Pending JPS5856153A (en) | 1981-09-30 | 1981-09-30 | Subroutine return system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS5856153A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4576288A (en) * | 1983-05-10 | 1986-03-18 | Tanaka Seiko Co. Ltd. | Card sorting machine |
EP0908813A2 (en) * | 1997-10-06 | 1999-04-14 | Sun Microsystems, Inc. | Method and apparatus for implementing multiple return sites |
US7137123B2 (en) | 1997-10-06 | 2006-11-14 | Sun Microsystems, Inc. | Inline database for receiver types in object-oriented systems |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS51147143A (en) * | 1975-06-13 | 1976-12-17 | Hitachi Ltd | Micro program control mechanism |
JPS5346245A (en) * | 1976-10-08 | 1978-04-25 | Hitachi Ltd | Microprogram controller |
JPS5520534A (en) * | 1978-07-28 | 1980-02-14 | Nec Corp | Data processor |
-
1981
- 1981-09-30 JP JP56155521A patent/JPS5856153A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS51147143A (en) * | 1975-06-13 | 1976-12-17 | Hitachi Ltd | Micro program control mechanism |
JPS5346245A (en) * | 1976-10-08 | 1978-04-25 | Hitachi Ltd | Microprogram controller |
JPS5520534A (en) * | 1978-07-28 | 1980-02-14 | Nec Corp | Data processor |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4576288A (en) * | 1983-05-10 | 1986-03-18 | Tanaka Seiko Co. Ltd. | Card sorting machine |
EP0908813A2 (en) * | 1997-10-06 | 1999-04-14 | Sun Microsystems, Inc. | Method and apparatus for implementing multiple return sites |
EP0908813A3 (en) * | 1997-10-06 | 1999-04-28 | Sun Microsystems, Inc. | Method and apparatus for implementing multiple return sites |
US6553426B2 (en) | 1997-10-06 | 2003-04-22 | Sun Microsystems, Inc. | Method apparatus for implementing multiple return sites |
US7137123B2 (en) | 1997-10-06 | 2006-11-14 | Sun Microsystems, Inc. | Inline database for receiver types in object-oriented systems |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0155211A2 (en) | System for by-pass control in pipeline operation of computer | |
US5125092A (en) | Method and apparatus for providing multiple condition code fields to to allow pipelined instructions contention free access to separate condition codes | |
EP0814411A2 (en) | Vector data processing apparatus | |
JPS5856153A (en) | Subroutine return system | |
EP0240606A2 (en) | Pipe-line processing system and microprocessor using the system | |
JPS63142431A (en) | Pipeline control system | |
JPH04152465A (en) | System and method for data processing | |
JP2000194556A (en) | Instruction look-ahead system and hardware | |
JPS58221447A (en) | Data processor | |
JPS61141001A (en) | Structure diagnosis system of process control system | |
JPS6119072B2 (en) | ||
JPH0578053B2 (en) | ||
JPS6232497B2 (en) | ||
JPS62293434A (en) | Branch destination forecasting controlling system | |
JPS62175831A (en) | Control system for pipeline with tag | |
JPH0675757A (en) | Link system for virtual space resident program | |
JPS62254237A (en) | Inter-printer type branch instruction executing system | |
JPS60178539A (en) | By-pass control system of information processor | |
JP3140442B2 (en) | Data processing device | |
JP3021697B2 (en) | Exception handling in programming languages | |
JPS6146562A (en) | Operation processing system of array element | |
JPS61231634A (en) | Program counter circuit | |
JPS61143850A (en) | Processor | |
JPH0398163A (en) | Vector data processor | |
JPH03148730A (en) | Process queue processing system |