首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同时执行if和else条件的MARIE代码

同时执行if和else条件的MARIE代码
EN

Stack Overflow用户
提问于 2017-04-28 00:08:08
回答 1查看 1.8K关注 0票数 1

我被要求做以下事情:

编写MARIE代码以执行以下程序摘录。

代码语言:javascript
复制
If (x < y + z) {
x = x – y; z=z+1;
}
else y=y-1;

指令:-使用“ORG”指令从地址200开始你的程序。-以下标签和指令应包含在程序的末尾:

代码语言:javascript
复制
X, Dec 4
Y, Dec 2
Z, Dec 5
One, Dec 1

我写了这个:

代码语言:javascript
复制
ORG 200 
Load X
Subt Y
Subt Z
Skipcond 000
Jump Else
If, Load X
Subt Y
Output
Load Z
Add One
Output
Else, Load Y
Subt One
Output
Halt

X, DEC 4
Y, DEC 2
Z, DEC 5
One, DEC 1

我的代码同时执行if和else条件。为什么会这样呢?我怎么才能修复它呢?我写的代码正确吗?

EN

回答 1

Stack Overflow用户

发布于 2017-05-16 22:09:27

为什么会这样呢?代码同时执行if和else条件,因为在If块的末尾需要跳转指令移动到if语句的末尾。

如何解决这个问题?

之前:

代码语言:javascript
复制
If, Load X
    Subt Y
    Output
    Load Z
    Add One
    Output
Else, Load Y
    Subt One
    Output
    Halt

之后:

代码语言:javascript
复制
If, Load X
    Subt Y
    Output
    Load Z
    Add One
    Output
    JUMP END
Else,   Load Y
    Subt One
    Output
END,    Halt

我写的代码正确吗?您需要将X、Y和Z的值存储回内存中,因此需要将输出指令替换为相应的存储指令,如下所示:

代码语言:javascript
复制
    / Code Section
    ORG 200 
    Load X
    Subt Y
    Subt Z
    Skipcond 000
    Jump Else
If, Load X
    Subt Y
    STORE X
    Load Z
    Add One
    STORE Z
    JUMP END
Else,   Load Y
    Subt One
    STORE Y
END,    Halt
    / Data Section
X,  DEC 4
Y,  DEC 2
Z,  DEC 5
One,    DEC 1

The result for the Marie simulator running the above program

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43662827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档