The EU passes instructions to the BIU on

The EU passes instructions
to the BIU on where to fetch data from, how to decode and further execute those
instructions. It controls all operations with the help of the instruction
decoder and the ALU (Arithmetic and Logic Unit). It is connected to the system
only through the BIU.

The ALU performs
arithmetic and logical operations like addition, subtraction, OR, Not, etc.

Flag Register: A 16-bit
register that relies on the accumulator result for its status. It contains 9
flags further divided into Conditional and Control flags.

·        
Conditional flags:

1.      Carry
flag: Set to 1 when there is an overflow in arithmetic operations.

2.      Auxiliary
flag: Set to 1 when a carry/borrow is generated in the lower nibble and passed
on to the higher nibble.

3.      Parity
flag: Set to 1 when the lower order 8-bit result contains even number of 1’s.
Set to 0 when there are odd number of 1’s.

4.      Zero
flag: Set to 1 when an arithmetic or logical operation result is zero.

5.      Sign
flag: Set to 1 when an operation results in a negative.

6.      Overflow
flag: Set to 1 when system capacity is exceeded.

·        
Control flags:

1.      Direction
flag: Set to 1 when it is required access the higher memory address in string
operations.

2.      Interrupt
flag: Set to 1 when interrupt conditions needs enabling which means that the
interruption of a program has to be allowed.

3.      Trap
flag: Set to 1 when the program is to be run in single step mode which means
one instruction is executed at a time to help in debugging.

General Purpose
Register: AH, AL, BH, BL, CH, CL, DH and DL are the 8 general purpose registers.
They can either be used individually (8-bit) or in pairs (16-bit).

AH and AL = AX

BH and BL = BX

CH and CL = CX

DH and DL = DX

·        
AX register: Accumulator register;
stores operands for arithmetic operations

·        
BX register: Base register; stores the
initial base address of memory within data segment

·        
CX register: Counter register; stores
loop counter in loop instructions

·        
DX register: stores I/O port address for
I/O instructions