Seguimos con nuestro torneo de Core War, vayan mandando sus creaciones a
la redacción que en cualquier momento empieza la competencia. El
intérprete de Core War está en nuestro BBS, en el 954-1792.
El mínimo programa de Core War es el IMP. Es una sola instrucción:
mov 0 1
Este programa lo que hace es copiar el contenido de la dirección de
memoria que se encuentra a cero posiciones de distancia a la dirección
siguiente. Con esto se copia a si mismo a la posición siguiente y luego
ejecuta esa copia. De esta forma va avanzando por la memoria. Su
estrategia es bastante mala, ya que cuando alcance al oponente en lugar
de destruirlo lo convierte en un programa igual a si mismo. Existe un
programa diseñado para ser su oponente: el IMP STOP, que es así:
start mov bomb -1
jmp start
Start indica al MARS (el intérprete de Core War) donde empezar la
ejecución. Este programita simplemente mantiene una celda bajo fuego
constante, cuando el IMP pase por esa celda será destruido.
Un programa algo más inteligente que estos dos sería el famoso DWARF,
que lanza ceros por toda la memoria tratando de alcanzar su objetivo.
dat -1
start add #5 -1
mov #0 @-2
jmp start
Es fácil ver lo que hace este programita. Empieza en start, donde
incrementa en cinco el dato definido por la instrucción dat. luego mueve
un cero a la posición de memoria indicada por el dat, y vuelve a
empezar.
Simplemente va barriendo la memoria con ceros, cada cinco posiciones de
memoria. Con esta sencilla estrategia evita sobreescribirse a si mismo,
ya que su código es de menos de cinco instrucciones. A pesar de que es
mejor que los programas que presentamos antes, es bastante poco
inteligente. Dejamos a los lectores con la tarea de escribir un programa
mejor y enviárnoslo.