標識セット内容一覧
標識の制御を用いたコーディングをする場合、IF文を省く為コード数の減少を見込める。
一覧表
| [演算命令] | [演算項目1] | [演算項目2] | [結果] | [標識(Hi)] | [標識(Lo)] | [標識(Eq)] |
|---|---|---|---|---|---|---|
| ADD(H) | 加数 | 加数 | 和 | + | - | Z |
| DIV(H) | 被除数 | 除数 | 商 | + | - | Z |
| MVR | 余剰 | + | - | Z | ||
| MULT(H) | 被乗数 | 乗数 | 積 | + | - | Z |
| SQRT(H) | 値 | 平方根 | + | - | Z | |
| SUB(H) | 被減数 | 減数 | 差 | + | - | Z |
| Z-ADD(H) | 加数 | 和 | + | - | Z | Z-SUB(H) | 減数 | 差 | + | - | Z |
| SETGT(E) | 検索引数 | ファイル | NR | ER | ||
| SETLL(E) | 検索引数 | ファイル | NR | ER | EQ | |
| CHAIN(E N) | 検索引数 | ファイル | データ構造 | NR | ER | |
| READ(E N) | ファイル | データ構造 | ER | EOF | ||
| READC(E) | レコード名 | データ構造 | ER | EOF | ||
| READE(E N) | 検索引数 | ファイル | データ構造 | ER | EOF | |
| READP(E N) | ファイル | データ構造 | ER | EOF | ||
| READPE(E N) | 検索引数 | ファイル | データ構造 | ER | EOF | |
| MOVE(P) | データ属性 | 転送元F | 転送先F | + | - | ZB |
| MOVEA(P) | 転送元 | 転送先 | + | - | ZB | |
| MOVEL(P) | データ属性 | 転送元F | 転送先F | + | - | ZB |
| CHECK(E) | 比較ストリング | 比較ストリング:開始 | 左端の位置 | ER | FD | |
| CHECKR(E) | 比較ストリング | 比較ストリング:開始 | 右端の位置 | ER | FD | |
| COMP | 被比較値 | 被比較値 | HI | LO | EQ | |
| OPEN(E) | ファイル名 | ER | ||||
| CLOSE(E) | ファイル名 | ER | ||||
| LOOKUP(E) | 検索引数 | 配列/テーブル | (テーブル) | HI | LO | EQ |
| RESET(E) | *NOKEY | *ALL | 変数/レコード様式 | ER | ||
| SETOFF | OF | OF | OF | |||
| SETON | ON | ON | ON |
注意
NR 又は FD 結果標識を指定する代わりに、%FOUND組込関数を使用することができます。
EOF結果標識を指定する代わり、%EOF組込関数を使用することができます
SETLL 及び LOOKUP 命令をテストする為に%EQUAL組込関数を使用することができます。
拡張'E'が付いている全ての命令コードでは、拡張'E'又はERエラー標識を指定する事ができますが、両方を指定する事はできません。
標識を用いた構文例
_*..1....+....2....+....3....+....4....+....5....+....6....+....7...+....8.
D*Name++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++
D NUM1 3 0 INZ(0)
D
CL0N01FACTOR1+++++++OPCODE&EXTFACTOR2+++++++RESULT++++++++LEN++D+HILOEQ....
C ADD 10 NUM1 010203
C* //演算結果が10の為、標識は01が*ONになる
C* //num1=10, *IN01=*ON, *IN02=*OFF, *IN03=*OFF
C
C 02 RESET NUM1
C* //標識2は*OFFの為、NUM1に対してリセットは行われない
C* //num1=10, *IN01=*ON, *IN02=*OFF, *IN03=*OFF
C
C 01 SUB 10 NUM1 010203
C* //標識1が*ON の為、NUM1に対して10の減算を行う
C* //num1=0, *IN01=*OFF, *IN02=*OFF, *IN03=*ON
C
C N03 Z-ADD 99 NUM1
C* //標識3が*ON の為、NUM1に対して99の加算は行われない
C* //num1=0, *IN01=*OFF, *IN02=*OFF, *IN03=*ON
注意
条件標識に"N"を指定する場合、それは標識が*OFFの時にしか実行されないことを意味しています。