小人计算机排序两个数字从大到小

时间:2015-04-18 09:37:03

标签: little-man-computer

程序设计用于减去第二个输入的第一个输入,如果结果是正数或零,则输入1更大(或相同),因此输入1首先输出。当第一个数字较大时,一切正常,但是当第一个数字较小时,即使减法的结果为负,它仍然会运行'if positive'循环。我不明白为什么会这样,但我希望有这方面经验的人可以提供帮助。

        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是程序的另一部分,它可以正常工作,因此您可以忽略它。

1 个答案:

答案 0 :(得分: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