The arms race described in the paragraphs above took place over a period of a billion instructions executed by the system. Another run was allowed to continue for fifteen billion instructions, but was not examined in detail. A creature present at the end of the run was examined and found to have evolved an intricate adaptation. The adaptation is an optimization technique known as ``unrolling the loop''.
The central loop of the copy procedure performs the following operations: 1) copies an instruction from the mother to the daughter, 2) decrements the cx register which initially contains the size of the parent genome, 3) tests to see if cx is equal to zero, if so it exits the loop, if not it remains in the loop, 4) increment the ax register which contains the address in the daughter where the next instruction will be copied to, 5) increment the bx register which contains the address in the mother where the next instruction will be copied from, 6) jump back to the top of the loop.
The work of the loop is contained in steps 1, 2, 4 and 5. Steps 3 and 6 are overhead. The efficiency of the loop can be increased by duplicating the work steps within the loop, thereby saving on overhead. The creature from the end of the long run had repeated the work steps three times within the loop, as illustrated in Appendix E, which compares the copy loop of the ancestor with that of its decendant.