2

首先这是玛丽汇编语言。

到目前为止我所拥有的:我可以轻松地接受来自用户等的输入......

现在我想做的是每次用户输入一个字符时假设一个整数我想将它与“0”进行比较,然后每次用户输入一个零时将 counterzero 加一

这是一段简单的代码,因为我试图理解这个想法。

我相信我的问题是了解跳过条件的工作原理我认为一旦我知道我将知道如何与我的初始化变量进行比较

感谢所有花时间阅读本文的人。

  start,    load prom
    output prom
    input
    store num1

    subt ex
    skipcond 400

    jump counterzero




counterzero, Skipcond 400 if AC = 0,
             store county + one
             jump done




done,   load county
            output
            halt



plus,   dec 43
eq,     dec 61
prom,   dec 62
num1,   dec 0
num2,   dec 0
county, dec 0

zero, dec 0
one,  dec 1
sum,    dec 0
nul,    dec 0
h30,    dec 48
ex, dec 33

编辑:我的测试是我输入零'0'并且计数器应该增加而不是它给了我一些奇怪的方框:S

4

1 回答 1

0

skipcond如果满足条件,则跳过一条指令。所以你有了

skipcond 400
jump counterzero

这意味着,如果 AC 等于 0,则跳到跳转后的指令。如果没有,执行跳转。

现在,由于跳转后的指令位于 address counterzero,因此在您的代码中没有太多作用,没有区别。

我不确定它是否符合您的意图,但在jump counterzero(您可以省略)之前我会添加一个jump done. 然后仅当 AC <> 0 时才跳转到地址计数器零。

如果它不起作用,请澄清你的意图,我可以详细说明。

于 2011-11-29T13:07:04.073 回答