The True Nature of "MOV": Not Movement, But Replication and Overwrite
Why the source cell remains intact during a MOV, and how whole-instruction copying (.I) powers both attacks and life
MOV (Move / Copy) is the most important instruction in CoreWar! - A (Left Address): Source box to copy from - B (Right Address): Destination box to copy to
Cell 0001 (1 row down) holds the treasure data DAT #0, #99. Currently, 0000 says MOV.I $1, $2 (copy 1 row down into 2 rows down).
🎯 Your Task Change the B (Right Address) of 0000 from $2 to $3 (3 rows down = Cell 0003) and press [STEP] to copy the treasure (99) into Cell 0003!
1. Assembly's Greatest Misnomer: "MOV" Copies, It Does Not Move!
In Step 11, you used the single most important instruction in CoreWar—"MOV"—to transfer the treasure data ("DAT #0, #99") from Address 0001 into Address 0003.
Look closely at both Address 0001 (the source) and Address 0003 (the destination) after pressing [STEP]. While the value 99 now sits inside Address 0003, the original 99 at Address 0001 is still sitting there completely intact!
Because "MOV" is short for "Move", almost every newcomer to assembly language initially assumes that the data is removed from the source box and relocated to the destination. In reality, across all assembly languages (x86, ARM, and Redcode), "MOV" is a historical misnomer: hardware MOV never deletes the source. It performs a COPY operation, duplicating the source cell's contents and overwriting the destination cell. If a CPU actually had to zero out the source cell every time it copied a value, every single data transfer would require two memory write cycles instead of one, cutting memory bandwidth in half!
Before [STEP]:
[0000] MOV.I $1, $3
[0001] DAT.F #0, #99 ──(Non-Destructive Read)──┐
[0003] DAT.F #0, #0 ◄──(Destructive Overwrite)─┘
After [STEP]:
[0001] DAT.F #0, #99 (Original remains intact!)
[0003] DAT.F #0, #99 (Exact clone created at destination!)2. The Law of Non-Destructive Read and Destructive Write
Computer memory obeys two fundamental physical laws during any data transfer:
First is NON-DESTRUCTIVE READ: Reading the state of a memory cell never consumes or erases that cell. Because reading is non-destructive, a warrior can keep a single master template (such as a DAT bomb or its own genetic code) in one cell and stamp out thousands of copies from it without ever exhausting the original.
Second is DESTRUCTIVE WRITE (Overwrite): Writing data into a memory cell completely obliterates whatever instruction or number previously occupied that box. There is no "undo" buffer in raw RAM.
Every offensive and reproductive strategy in CoreWar emerges directly from the combination of these two laws. If you copy a passive DAT cell onto an enemy warrior's code, the destructive write erases their vital instructions and replaces them with a lethal data bomb. Conversely, if you copy your own executable instructions into empty memory, you create a living clone of yourself. Notice how this mirrors biological genetics: when RNA polymerase reads a strand of DNA, the original DNA template is read non-destructively so it can be transcribed again and again, while the destination region in the cell is actively populated with new molecular structures.
3. The Power of the ".I" (Whole Instruction) Modifier
Notice the ".I" modifier attached to "MOV.I $1, $3". Earlier, we saw ".AB", which only transfers a single number from the left room to the right room. The ".I" modifier stands for Instruction, and it unlocks the full power of MOV: in a single clock cycle, "MOV.I" copies the ENTIRE memory cell—its Opcode, its Modifier, its A-mode and A-value, and its B-mode and B-value—as one complete unit!
In other words, "MOV.I" does not merely copy a number; it clones an entire cellular structure from one memory address to another. Keep this capability in mind—in Chapter 3, this exact instruction will give birth to self-replicating digital life. In modern computer architecture, bulk data transfer operations (such as "rep movsq" on x86 or Direct Memory Access / DMA controllers) are heavily optimized because moving structured blocks of memory is the most frequent task performed by operating systems—whether copying network buffers, rendering video frames, or duplicating process memory pages during a fork. In CoreWar, "MOV.I" is your universal tool for both creation and destruction: it can copy a lethal DAT bomb onto an enemy's head, or transcribe your own living instructions into new territory.
🔒 MISSION CLEAR Unlocks the Full Lecture Note
Complete the experiment in the simulator above to automatically unlock the full deep-dive article—or click below to read the full text immediately.