0

该程序旨在将第一个输入减去第二个,如果结果为正或零,则输入 1 更大(或相同),因此首先输出输入 1。当第一个数字较大时,这一切都可以正常工作,但是当第一个数字较小时,即使减法的结果为负,它仍会运行“如果为正”循环。我不明白为什么会发生这种情况,但我希望对此程序有更多经验的人可以提供帮助。

        INP
        STA VONE 
        INP
        STA VTWO
        LDA VONE
        SUB VTWO
        STA NUM
        LDA NUM
BTOS    LDA VONE
        OUT
        LDA VTWO
        OUT
        BRA LOOP
        BRP BTOS
        LDA VTWO
        OUT
        LDA VONE
        OUT
        BRA LOOP2

BRA LOOP是程序的不同部分,可以正常工作,因此您可以忽略它。

4

1 回答 1

1

您在这里要做的是取出一个数字,然后使用BRABRP命令查看哪个更大。

这是修改后的代码:

    INP
    STA VONE 
    INP
    STA VTWO
    LDA VONE
    SUB VTWO
    BRP BTOS
    BRA BTOS2
BTOS LDA VONE
    OUT
    LDA VTWO
    OUT
BTOS2 LDA VTWO
    OUT
    LDA VONE
    OUT
VONE    DAT
VTWO    DAT
于 2015-12-12T14:17:56.053 回答