1
max = 0
value = 0

LOOP
    INPUT value

    IF (value == 0)
    EXIT LOOP
    ENDIF

    IF (value > max)
           max = value
    ENDIF
ENDLOOP

PRINT max
STOP

我正在使用https://marie.js.org/但我在尝试弄清楚如何执行 if 语句时遇到了很多麻烦。我试图使用skipcond。我也在为无限循环而苦苦挣扎。任何让我开始的帮助将不胜感激。

4

1 回答 1

1

首先,将伪代码转换为汇编语言和机器代码的if-goto风格。

if a then
   b
endif

翻译成

    if !a then goto endif1
    b
endif1,

其次,将您的伪代码变量翻译成 Marie 汇编语言/机器代码变量。

例如,您max在伪代码中有一个整数,所以在数据区域中放置:

max, dec 0

最后,将每一行 if-goto 代码翻译成汇编。


条件测试if a < b goto是通过使用减法进行比较来完成的。因此,加载a到累加器中,减去b设置条件代码,然后执行 aSkipCond和 goto 以跳过或不跳过要执行的代码。


Marie.js 有许多简单的例子。查看乘法示例,查看数据/变量声明、条件分支、循环、输入、输出。

于 2020-11-01T18:28:25.710 回答