Corewar permet de créer des bots dans un langage très limité, proche de l'assembleur. Le but du jeu est de rester "en vie" tout en stoppant l'exécution des autres bots. Corewar est donc une machine virtuelle. Le programme asm permet de transformer l'assembleur en bytecode, et le programme dasm permet de faire l'inverse.
Exemple de programme corewar
# dasm Gagnant.cor .name "Celebration Funebre v0.99pl42" .comment "Jour J" ld %0, r3 # load zjmp 80 # jump if zero zjmp 0 # jump if zero live %42 # alive sti r15, %0, r14 # store index zjmp -200 # jump if zero live %42 # alive sti r15, %0, r14 # store index zjmp -200 # jump if zero live %42 # alive sti r15, %0, r14 # store index zjmp -200 # jump if zero live %42 # alive sti r15, %0, r14 # store index zjmp -200 # jump if zero sti r15, %0, r14 # store index zjmp -200 # jump if zero sti r15, %0, r14 # store index zjmp -200 # jump if zero sti r1, %65462, %1 # store index sti r1, %65455, %15 # store index sti r1, %65448, %29 # store index sti r1, %65441, %43 # store index sti r1, %65434, %57 # store index sti r1, %65427, %71 # store index ld %393216, r4 # load ld %917504, r12 # load ld %1, r11 # load ld %6, r10 # load live %42 # alive sti r4, %65381, %1 # store index add r4, r12, r4 # addition sub r10, r11, r10 # soustraction zjmp -50 # jump if zero fork -25 # fork live %3 # alive fork 40 # fork live %4 # alive fork 69 # fork live %42 # alive ldi %8, %65343, r15 # load index ld %-186, r14 # load ld %0, r2 # load zjmp -220 # jump if zero live %42 # alive fork 61 # fork live %42 # alive ldi %4, %65306, r15 # load index ld %-190, r14 # load ld %0, r2 # load zjmp -257 # jump if zero live %42 # alive ldi %12, %65277, r15 # load index ld %-182, r14 # load ld %0, r2 # load zjmp -286 # jump if zero live %42 # alive ldi %0, %65248, r15 # load index ld %-194, r14 # load ld %0, r2 # load zjmp -315 # jump if zero


