- ベストアンサー
CASLIIについて
行 ラベル 命令 オペランド 01 LD GRO、=0 02 LD GR1、=10 03 L1 SUBA GR1、=1 04 JMI OWARI O5 LD GR2、DATA、GR1 06 L2 JZE L1 O7 JPL L3 08 ADDA GRO、=1 09 L3 SLL GR2、1 10 JUMP L2 11 OWARI ST GRO、ANS 12 RET 13 DATA DC ‘TOKYOOSAKA‘ 14 ANS DS 1 15 END この文で、5行のLD GR2 DATA GR1に14行目を入れるとGR2は、‘A‘が入ると思うのですが、次の70と80行目のやり方がわかりません。またGROは、最終的に何を求めているのですか?あと、9行目は、なにをしているか、教えてください。お願いします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 1)5行のLD GR2 DATA GR1に14行目を入れると > GR2は、‘A‘が入ると思うのですが、 > 次の70と80行目のやり方がわかりません。 入れるのは13行目ですね。1回目は'A'が入りますね。 GR2の値によって06,07,08で処理を3つに分けています。 06:GR2が0なら次の文字を取りに行く。 07:GR2が正の場合、最上位ビットが0なので次のビットを調べに行く。 08:GR2が負つまり最上位ビットが1なのでカウンターを1増やしに行く。 > 2)GROは、最終的に何を求めているのですか? DATA(TOKYOOSAKA)の中に立っている1であるビットの合計数です。 > 9行目は、なにをしているか、教えてください。 GR2を1ビット左に論理シフトして左から2番目のビットが最上位に出るようにしています。 つまり、ビットオンオフの判定対象をずらしているのです。
その他の回答 (2)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>この文で、5行のLD GR2 DATA GR1に14行目を入れるとGR2は、‘A‘が入ると思うのですが、次の70と80行目のやり方がわかりません。 意味がわかりません。 >9行目は、なにをしているか 左シフトすることで、(最上位ビットを立てる) 最上位ビットが立っている時、GR0に+1してビットを数える >GROは、最終的に何を求めているのですか? 文字列全ての1のビットの数を数える
- t_nojiri
- ベストアンサー率28% (595/2071)
>9行目は、なにをしているか、教えてください。 符号なし左シフトみたいです。 >またGROは、最終的に何を求めているのですか? TOKYOOSAKAの文字チェックじゃないですか?