Addressing modes 

Addressing Modes

An instruction acts on zero or more operands. The way an instruction accesses its operands is called its Addressing modes.

We can classify the different addressing modes into four groups:

immediate
register
memory
I/O port

Operands may be implicit or explicit or both.

Implicit operands mean that the instruction by definition has some specific operands. These operands are NOT selected by the programmers.

Example: Implicit operands
 XLAT	; automatically takes AL and BX as operands
 AAM	; it operates on the contents of AX.

Explicit operands mean the instruction operates on the operands specified by the programmer.

Example: Explicit operands
 MOV AX, BX;   it takes AX and BX as operands
 XCHG SI, DI;  it takes SI and DI as operands

Implicit and explicit operands:

Example: Implicit/Explicit operands
 MUL BX; automatically multiply BX explicitly times AX     
       ; implicitly and save the result in DX:AX implicitly.

Many Pentium instructions have implicit operands. For instance, most of bit manipulation instructions update the EFLAGS register implicitly.

The location of an operand value in memory space is called the effective address (EA)