# Instruction - Execution (Execution environment)

A execution environment is an environment that provides the facility to make code executable.

Execution is the third step in a instruction cycle.

The execution environment needs to address the following question:

• Supported operations? data transfer, arithmetic, control, floatingpoint, etc.
• Where are operands stored? registers, memory, stack, accumulator
• How many explicit operands are there for each instruction? 0, 1, 2, or 3
• How is the operand location specified? register, immediate, indirect, etc.
• What type and size of operands are supported? byte, int, float, double, string, vector, etc.
• etc.

A process has a self-contained execution environment.

## 3 - Execute

The CPU requires a fixed number of clock ticks (or clock cycles) to execute each instruction. The faster the clock, the more instructions the CPU can execute per second.

All computer operations are carried out by a programmable device and are built from the combinations of logic gates (ie the combinations of boolean functions)

When a processor operates on binary numbers, this operation held mainly in data registers, where a register is a sequence of bits.

Example: 8-bit register that holds the number 9:

+--+--+--+--+--+--+--+--+
| 0| 0| 0| 0| 1| 0| 0| 1|
+--+--+--+--+--+--+--+--+

A processor has multiple registers and it can compute an addition by placing the two numbers into two separate registers and then compute the sum, which might be saved in a third register.

A 32 bits register (called a full word) can store a value in the approximate range of -2 billion to +2 billion.

When an operation is computed, the processor might copy the answer to the primary storage to save it for later use.