1

用户每次从键盘输入一个数字,最多 5 次有效。程序需要检查输入的号码是否与之前的号码重复,我将如何检查?谢谢!

4

1 回答 1

0

为此,最好设置一个“for”循环,将输入的数量最多计数为 5。当您从用户那里获得每个输入时,将该值存储在不同的寄存器中以供以后比较。当您进行实际比较时,您需要 NOT 并将立即 1 添加到数字之一。然后将这两个数字相加并检查它们是否等于零。

我将尝试为您提供一些示例代码,而无需实际编写所有代码。通常 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 回答