1

ユーザーは、キーボードから一度に 1 つずつ数字を最大 5 回まで入力する必要があります。プログラムは、入力された番号が以前の番号と重複していないことを確認する必要があります。それを確認するにはどうすればよいですか? ありがとう!

4

1 に答える 1

0

これを行うには、最大 5 までの入力数をカウントする「for」ループを設定するのが最適です。ユーザーから各入力を取得すると、後で比較するためにその値を別のレジスタに格納します。実際の比較を行うときは、数値の 1 つに即値の 1 を NOT して ADD する必要があります。次に、2 つの数値を足し合わせて、ゼロに等しいかどうかを確認します。

実際にすべてを記述せずに、いくつかのサンプル コードを示します。通常、LC-3 は大学内の ASM 学習に使用されます。

.ORIG x3000

MAIN    
AND R1, R1, #0          ; Clear R1

LOOP        
    LD R2, LIMIT
    ADD R4, R1, R2      ; Check to see if we've hit our limit
    BRz END_LOOP

    getc                ; Capture a character and stores it in r0.
    out                 ; Sends the character in r0 to the terminal.

    AND R3, R3, #0      ; Clear R3
    ADD R3, R3, R0      ; Store the user's input into R3 to compare the next time we loop

    ADD R1, R1, #1      ; Increment our loop counter
    BR LOOP             ; Branch to LOOP
END_LOOP

HALT    

; Variables
LIMIT   .FILL x0005     ; Store the value of 5 into our loop limit variable

.END
于 2015-04-22T23:17:04.940 に答える