重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

CASLIIの問題なんですが


DAT番地より格納された5個のデータの0以上の数の個数をGR2に数えるプログラムを作成せよ。

という問題が解けません><
どなたかご教授お願いします。

A 回答 (3件)

      XOR  GR2,GR2 ; CLEAR GR2


      LD   GR1,=5 ; NUMBER OF UNCHECKED DAT
LOOP  SUBA GR1,=1
      JMI  FIN ; JUMP IF ALL DAT WAS CHECKED
      LD   GR0,DAT,GR1
      JMI  LOOP
      ADDA GR2,=1 ; COUNTUP GR2 IF GR0 ISN'T NEGATIVE
      JUMP LOOP
FIN   NOP
    • good
    • 0

ZERO  DC  0


ONE    DC  1
FIVE   DC  5

KAISHI  LD   GR2,0
      LD    GR1,0
LOOP  LD   GR0,DAT,GR1
      CMA  GR0,ZERO
      JZE   NEXT
      ADDA  GR2,ONE
NEXT   ADDA  GR1,ONE
      CMA   GR1,FIVE
      JNZ   LOOP

こんな感じ。もっと上手い方法があるかも?
丸コピすると、説明できずに苦しむので、
解説はしないから、自分で考えてね。
    • good
    • 1

なつかしい・・・キャッスルかー


久しぶりなので、適当になってしまうかもですが
http://www5a.biglobe.ne.jp/~teamcasl/caslkozatop …
ここを参考にしながら
CPAを使いそうなのですが、私の場合プロなのでそうもいかず
ANDで行くでしょうね
同じものとANDを取ると値はそのままで、結果として0だったかだけを比較するので、
JZE
で分岐させます。
CASLのINCがわからなーぃwww
とりあえずジャンプ条件付Z(つまり元が0だった)場合
の残りが、GR2が+1になればOK
それ以外はGR2が+1を通らなければOK
後はこれを5回やればOK

プログラマの説明ってわかりにくいね
ごめんなさい
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!