0

カウンターのあるLC-3プログラムがあります。TRAPx21を使用してカウンターを画面に印刷できます。ただし、カウンター番号が2桁の場合、私のプログラムは機能しません。

例:9は完全に印刷されますが、19は印刷されません。

カウンターを含むレジスターを印刷する前に、ループが必要だと推測しています。ループは、2で割って数値を切り刻みます(10進数で10で割った場合と同じですが、2進数で2)。次に、digit1、digit0を出力すると思います。問題がありますが、LC-3で分割するにはどうすればよいですか?右シフト?それはこの問題には難しすぎて、私の知識を超えているようです。

助けてください。

    0010 000 000000011    ; R0 <= x30 which is for  
    0001 000 000 0 00 010 ; R0 <= R0 + R2 

    1111 0000 00100001    ; TRAP x21 
    1111 0000 00100101    ; TRAP x25 
    0000000000110000
4

1 に答える 1

1

数字->数字のルーチンのため、1桁でのみ機能します。文字「0」に数字を追加していますが、明らかに文字「11」などはありません。

最大の除数を見つけるには、除数が数値を超えるまで(通常は繰り返し加算して)10を掛けます(その後、前の値に戻ります)。これにより、上記のGarethの方法を使用できるようになります。

于 2012-07-10T23:37:27.347 に答える