我正在尝试编写一个翻译器,用 Intel x86 汇编语言 (MASM) 翻译 VM 语言。不幸的是,我找不到 lt(小于)、gt(大于)或 eq(等于)的正确翻译,但我希望指令集中有类似的东西。我能找到的最接近的东西是 cmp (比较),然后是条件跳转。但是没有跳跃就什么都没有。
例如,当我想翻译 if (x>1 and x<3) do ... VM 代码看起来像
push local 0
push constant 1
gt
push local 0
push constant 3
lt
and
if-goto IF_TRUE0
我现在的问题是我不知道如何翻译 gt 和 lt 因为它们不是直接跟随跳转,而是都是单个跳转条件的一部分。