在 Marie.js 中,我将如何为以下伪代码执行 if 语句和循环?
In Marie.js how would I go about doing an if statement and loop for the following pseudocode?
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。我也在为无限循环而苦苦挣扎。任何帮助我开始的帮助将不胜感激。
首先,将伪代码转换为if-goto风格的汇编语言&机器码。
if a then
b
endif
翻译成
if !a then goto endif1
b
endif1,
其次,将你的伪代码变量翻译成玛丽汇编language/machine代码变量。
比如你在伪代码中有一个整数max
,那么在数据区放:
max, dec 0
最后,将每行if-goto代码翻译成汇编。
条件测试if a < b goto
是通过使用减法进行比较来完成的。因此,将 a
加载到累加器中,减去设置条件代码的 b
,然后执行 SkipCond
并转到跳过或不跳过要执行的代码。
Marie.js 有很多简单的例子。查看乘法示例,查看 data/variable 声明、条件分支、循环、输入、输出。
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。我也在为无限循环而苦苦挣扎。任何帮助我开始的帮助将不胜感激。
首先,将伪代码转换为if-goto风格的汇编语言&机器码。
if a then
b
endif
翻译成
if !a then goto endif1
b
endif1,
其次,将你的伪代码变量翻译成玛丽汇编language/machine代码变量。
比如你在伪代码中有一个整数max
,那么在数据区放:
max, dec 0
最后,将每行if-goto代码翻译成汇编。
条件测试if a < b goto
是通过使用减法进行比较来完成的。因此,将 a
加载到累加器中,减去设置条件代码的 b
,然后执行 SkipCond
并转到跳过或不跳过要执行的代码。
Marie.js 有很多简单的例子。查看乘法示例,查看 data/variable 声明、条件分支、循环、输入、输出。