Assembly 理解汇编语言中的跳过条件

Assembly 理解汇编语言中的跳过条件,assembly,marie,Assembly,Marie,首先,这是玛丽汇编语言 到目前为止,我所拥有的是:我可以很容易地接受用户的输入等等 现在我想做的是,每次用户输入一个字符,假设一个整数,我想将它与“0”进行比较,然后每次用户输入一个0时,将counterzero递增一 这里有一段简单的代码,我正试图抓住这个想法 我认为我的问题是理解skip条件是如何工作的,我想一旦我知道我将知道如何与我的初始化变量进行比较 感谢所有花时间阅读本文的人 start, load prom output prom input sto

首先,这是玛丽汇编语言

到目前为止,我所拥有的是:我可以很容易地接受用户的输入等等

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

这里有一段简单的代码,我正试图抓住这个想法

我认为我的问题是理解skip条件是如何工作的,我想一旦我知道我将知道如何与我的初始化变量进行比较

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

  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跳过一条指令。所以,你有

skipcond 400
jump counterzero
这意味着,如果AC等于零,则跳到跳转后的指令。如果没有,则执行跳转

现在,由于跳转后的指令位于地址
计数器零
,因此在代码中没有太多功能,因此没有区别

我不确定它是否符合您的意图,但在
跳转计数器归零
(您可以省略)之前,我会添加一个
跳转完成
。然后,只有当AC为0时,它才会跳到地址计数器0


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

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

skipcond 400
jump counterzero
这意味着,如果AC等于零,则跳到跳转后的指令。如果没有,则执行跳转

现在,由于跳转后的指令位于地址
计数器零
,因此在代码中没有太多功能,因此没有区别

我不确定它是否符合您的意图,但在
跳转计数器归零
(您可以省略)之前,我会添加一个
跳转完成
。然后,只有当AC为0时,它才会跳到地址计数器0

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