MPC2000 Reference Manual [JAPANESE] [ENGLISH]
【ステートメント】   【制御文】
【使い方】
GOSUB,GOSUB_NE

GOSUB *Label 
GOSUB *Label arg1 arg2 ..
【書   式】 【機   能】
GOSUB *Label [arg1,arg2..]

サブルーチン・コール
【解   説】
サブルーチンは、スタック・メモリを用いているので、GOSUBで呼ばれたプログラムは必ずRETURNでもどる必要があります。
サブルーチン中からRETURNを用いずGOTOなどで呼び出し元に戻すプログラムを作ってしまうと、
スタック・オーバフローやアンダーフローというエラーになりプログラム実行が停止します。

BL/1のGOSUBコマンドは、呼び出し先ラベルの後に、サブルーチンに引き渡す引数を追加することができます。
この引数値は、サブルーチン側で、_VARコマンドで取り出します。
_VARの引数に、タスクローカル変数を用いるとサブルーチンは汎用的になります。

GOSUBの替わりにGOSUB_NEを用いると、呼び出し先ラベルが存在していなくてもコンパイル・エラーとならず、そのまま実行可能です。
飛び先ラベルの無いGOSUB_NEは、実行時には無視されます。




10 GOSUB *CAL 300 400
20 _VAR RES
30 PR RES
40 END
50 *CAL
60 _VAR V_ W_
70 RETURN SQR(SQ(W_)+SQ(V_))
RUN

*
Compiling
---------------------
500
#
  [LASTMODIFY]2011-03-09 10:36:43 [CREATEDATE]2007-07-23 18:29:49
MPC2000 Reference Manual -R5.11-   (C)2007 ACCEL Corp. all right reserved.