Instruction | Function |
---|---|
Flow-control: Control the flow during genome execution which is otherwise linear | |
if-label (f) | Executes the next instruction in the genome sequence if the flow head is at a specified label. In the ancestral copy-loop, this instruction makes sure that the division instruction is executed only when the entire genome has been copied. |
Reproduction (Biological): Assist in copying of genome sequence during replication | |
h-copy (v) | Copies a single instruction from parent genome to offspring genome |
h-divide (x) | Separates offspring genome from parent and places the offspring organism in the cell faced by parent |
h-search (z) | Finds a specified label in the genome and moves a specified head to this label. In the copy-loop, this instruction ensures the flow head returns to the start of the loop on reaching the end of the genome. |
Messaging: Allow organisms to send and receive messages | |
send-msg (B) | Send a message (containing numbers stored in two of the registers) to the neighbor in the direction the organism currently faces. |
retrieve-msg (C) | Retrieves messages into specified registers from the messaging buffer |
bcast1 (D) | Sends a message to all the eight nearest neighbors |
Rotation: Allow organisms to change the direction they are facing | |
rotate-left-one (E) | Rotates the organism by a unit in the anticlockwise direction |
rotate-right-one (F) | Rotates the organism by a unit in the clockwise direction |