2

まず、これはマリー アセンブリ言語です。

ここに私がこれまでに持っているもの:ユーザーなどからの入力を簡単に受け入れることができます....

今私がやりたいことは、ユーザーが文字を入力するたびに、整数を想定してそれを「0」と比較し、ユーザーがゼロを入力するたびにカウンターゼロを1ずつインクリメントすることです

これは、アイデアを把握しようとしている単純なコードです。

私の問題は、スキップ条件がどのように機能するかを理解することだと思います。初期化された変数と比較する方法がわかると思います

これを読んでくれたすべての人に感謝します。

  start,    load prom
    output prom
    input
    store num1

    subt ex
    skipcond 400

    jump counterzero




counterzero, Skipcond 400 if AC = 0,
             store county + one
             jump done




done,   load county
            output
            halt



plus,   dec 43
eq,     dec 61
prom,   dec 62
num1,   dec 0
num2,   dec 0
county, dec 0

zero, dec 0
one,  dec 1
sum,    dec 0
nul,    dec 0
h30,    dec 48
ex, dec 33

編集済み:私のテストでは、ゼロ「0」を入力すると、カウンターがインクリメントすると想定され、代わりに奇妙な正方形のボックスが表示されます:S

4

1 に答える 1

0

skipcond条件が満たされた場合、1 つの命令をジャンプします。だから、あなたは持っています

skipcond 400
jump counterzero

これは、AC がゼロに等しい場合、ジャンプ後の命令にスキップすることを意味します。そうでない場合は、ジャンプを実行します。

さて、ジャンプ後の命令は addresscounterzeroにあるため、コードではあまり機能しませんが、違いはありません。

それがあなたの意図と一致するかどうかはわかりませんが、jump counterzero(省略してもかまいません)の前に . を追加しjump doneます。次に、AC <> 0 の場合にのみアドレス counterzero にジャンプします。

うまくいかない場合は、意図を明確にしてください。詳しく説明します。

于 2011-11-29T13:07:04.073 に答える