System Software クラスのプロジェクトがあり、ソース行をラベル、オペコード、オペランド 1、オペランド 2 の 4 つのコンポーネントに分解し、n、i、x、および e ビット設定を識別するサブルーチンを作成する必要があります。nixbpe ビットを見つけようとして問題が発生しています。よろしくお願いします。
以下にいくつかの例を示します。 ソース行の次の 4 つの例のコンポーネントとビットは次のとおりです。
例 +LDA STUFF,X .MAIN
ラベル: "EXAMPLE" オペコード: "LDA" オペランド 1: "STUFF" オペランド 2: "X"
nixbpe: 111??1
RSUB NO OP
ラベル: "" オペコード: "RSUB" オペランド 1: "NO" オペランド 2: "OP"
nixbpe: 110??0
CMT BYTE @C'RESERVED BLOCK',XYZ SET Aside
ラベル: "CMT" op コード: "BYTE" オペランド 1: "C'RESERVED BLOCK'" オペランド 2: "XYZ"第2オペランド>
nixbpe: 101??0
RMO A,X
ラベル: "" オペコード: "RMO" オペランド 1: "A" オペランド 2: "X"
nixbpe: 11l??0
「?」とマークされた nixbpe ビット 呼び出しプログラムから受け取ったままになります。op コードの接頭辞によって e-bit が決まります。operand1 の接頭辞によって n ビットと i ビットが決まります。operand2 の最初の文字が x ビットを決定します。b ビットと p ビットは別の場所に設定されます。このルーチンではセマンティック チェックは想定されていません (したがって、特に、上記の RSUB ステートメントの解釈はどちらも OK です)。コンポーネントのデフォルト値は空の文字列です。「ni??pe」ビットのデフォルトは「00??00」です。