本文翻译自 LowEndBox,原文:lowendbox.com/blog/one-of-my-faves-sharpen-your-assembly
我一直很喜欢写代码的游戏。我是一个狂热的核心战争例如,90 年代的玩家,在学习 x86 汇编程序之前,我先学习了 Redcode(游戏中使用的 x86 风格的汇编程序)。在沙箱中编写具有“真实游戏后果”的代码是学习通过编程解决问题的基础知识的好方法。
几年前,我与TIS-100,一个有趣的游戏,您可以在其中编写汇编程序来解决各种问题。您正在使用的机器与典型的 x86 机器有很大不同。它是一系列互连的节点,可以通过端口传递数据,每个节点都有自己的累加器和辅助寄存器。
这是游戏界面的示例。我在 iPad 上截取了这张屏幕截图,但它也可以在 Steam 上使用(适用于 Windows 和 Linux)。
我刚刚发现现在有 50% 折扣!在美国这里,是只需 3 美元。 49 至 7 月 9 日
如果您点击任何节点,就会调出完整的键盘。
进展过程中遇到了一系列问题。这是最简单的方法之一——您正在读取值并将它们写入不同的输出。跑步的样子是这样的:
您可以阅读完整手册为了这里的比赛。汇编语言很小。除了标签和注释之外,只有 13 个命令。
这是一个示例程序:
开始: 向上移动,ACC 金广正正 JLZ 负 跳转开始 正面:MOV ACC,右 跳转开始 负:MOV ACC,左 跳转开始
如果您做过汇编编程,您可能会明白这一点。如果没有,请考虑
- “JGZ”是“大于零则跳转”
- “JLZ”是“小于零则跳转”
- 两者都基于 ACC 的值进行操作。所以如果ACC的值为8,你说“JGZ”,那么它就会跳转。
- “JMP”是无条件跳转
当然,有一个总体故事,但乐趣在于解决问题。享受!
