A microprocessor is an electronic component that is used by a computer to do its work. It is a central processing unit on a single integrated circuit chip containing millions of very small components including transistors, resistors, and diodes that work together. Some microprocessors in the 20th century required several chips. Microprocessors help to do everything from controlling elevators to searching the Web. Everything a computer does is described by instructions of computer programs, and microprocessors carry out these instructions many millions of times a second. [1]
Microprocessors were invented in the 1970s for use in embedded systems. The majority are still used that way, in such things as mobile phones, cars, military weapons, and home appliances. Some microprocessors are microcontrollers, so small and inexpensive that they are used to control very simple products like flashlights and greeting cards that play music when you open them. A few especially powerful microprocessors are used in personal computers.
2. 8086 Addressing Modes
1. Immediate:
-an instruction in which 8-bit or 16-bit operand(data ) is
specified in the instruction, then the addressing mode of
such instruction is known as Immediate addressing mode.
-Examples:
MOV AX,67D3H
AX 67D3H
ADD AL,5CH
AL 5CH
- Immediate data can be 8-bit or 16-bit
Immediate data can not be the destination
3. 8086 Addressing Modes
2. Register
-an instruction in which an operand(data) is specified in
general purpose registers, then the addressing mode is
known as register addressing mode.
Example:
MOV AX,CX
AX CX
MOV BL,DL
BL DL
• Both source and destination should be of the same size
• Data is copied to destination, source value is retained
4. 8086 Addressing Modes
3. Direct
-an instruction in which 16 bit effective address of an
operand is specified in the instruction, then the addressing
mode of such instruction is known as direct addressing
mode.
Example:
MOV CL,[2000H]
CL byte from memory location [10H x DS + 2000H]
MOV AX,[5000H]
AX 2 bytes from memory location [10H x DS + 5000H]
5. 8086 Addressing Modes
4. Register Indirect
an instruction in which address of an operand is specified in
pointer register or in index register or in BX, then the
addressing mode is known as register indirect addressing
mode.
Example:
MOV AX, [BX]
AX [10H x DS + BX]
MOV CL,[SI]
CL [10H x DS + SI]
6. 8086 Addressing Modes
5. Indexed
an instruction in which the offset address of an operand is
stored in index registers (SI or DI) then the addressing mode
of such instruction is known as indexed addressing mode.
DS is the default segment for SI and DI.
For string instructions DS and ES are the default segments for
SI and DI resp.
this is a special case of register indirect addressing mode.
Example:
MOV AX,[SI]
AX [10H x DS + SI]
7. 8086 Addressing Modes
6. Based Indexed
an instruction in which the address of an operand is obtained
by adding the contents of base register (BX or BP) to the
content of an index register (SI or DI)
The default segment register may be DS or ES
Example:
MOV AX, [BX][SI]
AX [10H x DS + SI + BX]
8. 8086 Addressing Modes
7. Register relative
an instruction in which the address of the operand is
obtained by adding the displacement (8-bit or 16 bit) with
the contents of base registers or index registers (BX, BP, SI,
DI).
the default segment register is DS or ES
Example:
MOV AX, 50H[BX]
Ax [10H x DS + 50H + BX]
9. 8086 Addressing Modes
8. Relative Based Indexed
an instruction in which the address of the operand is
obtained by adding the displacement (8 bit or 16 bit) with
the base registers(BX or BP) and index registers (SI or DI) to
the default segment.
Example:
MOV AX, 50H [BX][SI]
AX [10H x DS + 50H + BX + SI]
10. 8086 Addressing Modes
Control transfer instructions:
Destination in the same segment: intrasegment
Destination in another segment : intersegment
Modes for control transfer
Intersegment Intrasegment
Direct Indirect Direct Indirect
11. 8086 Addressing Modes
9. Intrasegment Direct
address where the control to be transferred is specified
in the instruction as an immediate displacement value.
displacement is computed relative to the IP.
short jump: signed 8 bit displacement (-128 to 127)
long jump: signed 16 bit displacement (-32768 to 32767)
Example:
JMP SHORT LABEL
label lies within -128 to 127 from the current IP