GETMAIN
By 神居 - Posted: 2009/07/31 Last updated: 2010/06/19
- Leave a Comment
GETMAIN:メモリー領域を割り当てるOSのAPI
GETMAINはプログラム・モジュールの外にメモリー領域を割り当てるためのOSのプログラミングサービス機能です。プログラムが動的にメモリーを確保する時に使います。このサービスの名前から、メモリー領域を割り当てることそのものをGETMAINとも言います。例えば、「サブルーチンが使うワークエリアをGETMAINする」のようにです。C言語におけるmalloc関数に相当します。
プログラムで使うと言っても、GETMAINサービスを直接使うことが出来るのはアセンブラ言語に限ります。GETMAINサービスはGETMAINマクロを使いSVCによって呼び出します。z/OSではGETMAINの他にSTORAGEマクロによるサービスも利用できます。クロスメモリー・モードのプログラムなど、SVC命令が発行できない場合はGETMAINではなく、STORAGEマクロを利用します。STORAGEではSVCではなく、PC命令によってサービスが呼び出されます。
GETMAINマクロ
----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- GETMAIN RU,LV=LWORK, GETMAIN OUR LOCAL WORKAREA + LOC=31 LR R6,R1 GR6 --> OUR LOCAL WORKAREA USING DWORK,R6 ADDRESS IT
GETMAINマクロの使用例です。RUはGETMAINサービスのタイプの1つを示し、LVパラメーターによって確保したい領域の長さを指定します。GETMAINが成功すると確保された領域の内容は汎用レジスタ1に設定されます。
GETMAINの説明とサンプルはこちらにあります。»»» ここ
Posted in キーワードから(何が知りたいですか) • • Top Of Page