磁芯大战——充满恶意的编程的入门

《磁芯大战》(Core War)是一款由 A. K. Dewdney 于 20 世纪 80 年代首次推出的编程游戏,玩家使用类似于汇编语言的 Redcode 编写的计算机程序进行对战。程序员设计他们的战斗程序,通过一切可能的方式将对手从 MARS 虚拟机的内存中移除。

一些较为简单的技巧包括盲目覆盖内存、搜索对手或生成程序的新副本。这些技巧通常以家喻户晓的小游戏“石头剪刀布”来命名。石头通常胜过剪刀,剪刀通常胜过布,而布通常胜过石头。

作为例子,这是一个经典 Core War 程序:

     org   wipe

     step  equ 5
     first equ bomb-10

bomb:mov.i #1,       -1

ptr: sub   #step,    #first
wipe:jmz.f ptr,      @ptr

     mov   bomb,     >ptr
     djn.f wipe,     {ptr-5

     end

这个简单的剪刀示例曾一度领先对手 20 分。第一条指令 (译注:指从 bomb 行开始) 从不执行,它是用来覆盖对手的炸弹。接下来的两条指令构成一个循环,在内存中搜索对手,最后两条指令实际上用来覆盖对手的代码。

《磁芯大战》至今仍热度不减 (译注:指国外的情况(笑)),并于 2024 年迎来了其 40 周年纪念。如果您想深入了解《磁芯大战》,以下是一些顶级资源 (译注:对于已在本文档集中的文档,后附译后文档;未收录与网站等将指向外部链接)