我的任务是使用Flex实现类汇编语言的解释器。
有这样的命令:
add x y z,(z = x + y)
sub x y z,(z = x - y)
mul x y z,(z = x * y)
div x y z,(z = x / y)
设x 10,(x = 10)
mov x y,(y = x)
使用Flex实现此命令的解释器非常简单。
我坚持执行JMP line, (current line = line)
指令。我不知道如何重置Flex当前解析行或类似的东西。
JMP
instruction只是用目标指令的地址修改program counter。所以,这个VM你需要一个PC注册。
它真的很简单。不要过分思考这一点。请记住,他们在半个世纪前从vacuum tubes创建了JMP指令。这严重限制了复杂性。