Department of Electrical and Electronic
Engineering
Khulna University of Engineering & Technology
Khulna-9203
Course code : EE 3214
Sessional on
Microprocessors, Micro-controllers and Peripherals
Presented By
Amit Kumer Podder
Experiment No. 05
(a) Introduction to 8086 Microprocessor Internal
Architecture, Addressing modes and Hex code
(b) Constructing the Machine code for 8086 instruction
(c) Familiarization with MDA-Win 8086 Microprocessor
Trainer Kit
Experiment Name
Intel 8086 Microprocessor
4
Key Features:
 Released by Intel in 1978
 Produced from 1978 to 1990s
 A 16-bit microprocessor chip.
 Max. CPU clock rate :
5 MHz to 10 MHz
 Instruction set: x86-16
 Package: 40 pin DIP
 The 8086 gave rise to
the x86 architecture of Intel's future processors.
 Common manufacturer(s): Intel, AMD, NEC, Fujitsu,
Harris (Intersil), OKI, Siemens AG, Texas Instruments,
Mitsubishi.
Intel 8086 Microprocessor
5
 It is available in three
versions:
 8086 (5 MHz)
 8086-2 (8 MHz)
 8086-1 (10 MHz)
 It consists of 29,000
transistors.
Intel 8086 Microprocessor
• It has a 16 line data bus.
• And 20 line address bus.
• It could address up to 1 MB of
memory.
• It has more than 20,000
instructions.
• It supports multiplication and
division.
6
Intel 8086 Microprocessor
7
Pin diagram 8086 Microprocessor
8
 These lines are multiplexed
bi-directional address/data
bus.
 During T1, they carry lower
order 16-bit address.
 In the remaining clock
cycles, they carry 16-bit
data.
 AD0-AD7 carry lower order
byte of data.
 AD8-AD15 carry higher order
byte of data.
9
 These lines are multiplexed
unidirectional address and
status bus.
 During T1, they carry higher
order 4-bit address.
 In the remaining clock
cycles, they carry status
signals.
10
 BHE stands for Bus High Enable.
 BHE signal is used to indicate
the transfer of data over higher
order data bus (D8 – D15).
 8-bit I/O devices use this signal.
 It is multiplexed with status pin
S7.
11
 It is a read signal used
for read operation.
 It is an output signal.
 It is an active low signal.
12
 This is an acknowledgement
signal from slower I/O devices
or memory.
 It is an active high signal.
 When high, it indicates that the
device is ready to transfer data.
 When low, then microprocessor
is in wait state.
13
RESET
Pin 21 (Input)
• It is a system reset.
• It is an active high signal.
• When high, microprocessor enters
into reset state and terminates the
current activity.
• It must be active for at least four
clock cycles to reset the
microprocessor.
14
INTR
Pin 18 (Input)
• It is an interrupt request
signal.
• It is active high.
• It is level triggered.
15
NMI
Pin 17 (Input)
• It is a non-maskable
interrupt signal.
• It is an active high.
• It is an edge triggered
interrupt.
16
TEST
Pin 23 (Input)
• It is used to test the status of
math co-processor 8087.
• The BUSY pin of 8087 is
connected to this pin of
8086.
• If low, execution continues
else microprocessor is in wait
state.
17
CLK
Pin 19 (Input)
• This clock input provides the basic
timing for processor operation.
• It is symmetric square wave with 33%
duty cycle.
• The range of frequency of different
versions is 5 MHz, 8 MHz and 10 MHz.
18
VCC and VSS
Pin 40 and Pin 20 (Input)
• VCC is power supply signal.
• +5V DC is supplied through
this pin.
• VSS is ground signal.
19
MN / MX
Pin 33 (Input)
• 8086 works in two modes:
• Minimum Mode
• Maximum Mode
• If MN/MX is high, it works in
minimum mode.
• If MN/MX is low, it works in maximum
mode.
8086 INTERNAL ARCHITECTURE
Fig: 8086 Internal block diagram .
20
8086 microprocessor
• 16 bit- microprocessor
• 16-bits data bus
21
Microprocessor
8086
Data
Bus
Control
signals
Add
Bus
Address Bus – 20 lines – A19 – A0
Data Bus – 16 lines – D15 – D0
BIU and EU
• BIU (bus interface unit) sends out addresses, fetches instructions from
memory, reads data from ports and memory, and writes data to ports and
memory. In other words, the BIU handles all transfers of data and
addresses on the buses for the execution unit.
• EU (execution unit) of the 8086 tells the BIU where to fetch instructions
or data from, decodes instructions, and executes instructions.
22
23
24
25
26
27
28
29
30
Addressing Modes of 8086
Addressing modes refer to the different methods of addressing the operands.
Addressing modes of 8086 are as follows:
Immediate addressing mode-
In this mode, the operand is specified in the instruction itself. Instructions are longer but the
operands are easily identified.
Example:
MOV CL, 12H
This instruction moves 12 immediately into CL register. CL ← 12H
Register addressing mode-
In this mode, operands are specified using registers. This addressing mode is normally
preferred because the instructions are compact and fastest executing of all instruction forms.
Registers may be used as source operands, destination operands or both.
Example:
MOV AX, BX
This instruction copies the contents of BX register into AX register. AX ← BX
Direct memory addressing mode-
In this mode, address of the operand is directly specified in the instruction. Here only
the offset address is specified, the segment being indicated by the instruction.
Example:
MOV CL, [4321H]
This instruction moves data from location 4321H in the data segment into CL.
The physical address is calculated as
DS * 10H + 4321
Assume DS = 5000H
∴PA = 50000 + 4321 = 54321H
∴CL ← [54321H]
Addressing Modes of 8086
Register based indirect addressing mode-
In this mode, the effective address of the memory may be taken directly from one of the base
register or index register specified by instruction. If register is SI, DI and BX then DS is by
default segment register.
If BP is used, then SS is by default segment register.
Example:
MOV CX, [BX]
This instruction moves a word from the address pointed by BX and BX + 1 in data segment
into CL and CH respectively.
CL ← DS: [BX] and CH ← DS: [BX + 1]
Physical address can be calculated as DS * 10H + BX.
Register relative addressing mode-
In this mode, the operand address is calculated using one of the base registers and an 8 bit or
a 16 bit displacement.
Example:
MOV CL, [BX + 04H]
This instruction moves a byte from the address pointed by BX + 4 in data segment to CL.
CL ← DS: [BX + 04H]
Physical address can be calculated as DS * 10H + BX + 4H.
Addressing Modes of 8086
Base indexed addressing mode-
Here, operand address is calculated as base register plus an index register.
Example:
MOV CL, [BX + SI]
This instruction moves a byte from the address pointed by BX + SI in data segment to CL.
CL ← DS: [BX + SI]
Physical address can be calculated as DS * 10H + BX + SI.
Relative based indexed addressing mode-
In this mode, the address of the operand is calculated as the sum of base register, index
register and 8 bit or 16 bit displacement.
Example:
MOV CL, [BX + DI + 20]
This instruction moves a byte from the address pointed by BX + DI + 20H in data segment
to CL.
CL ← DS: [BX + DI + 20H]
Physical address can be calculated as DS * 10H + BX + DI + 20H.
Addressing Modes of 8086
35
36
Instruction Set 8086
37
Instruction Set 8086
38
Instruction Set 8086
39
Instruction Set 8086
40
Instruction Set 8086
41
Instruction Set 8086
42
Instruction Set 8086
43
Instruction Set 8086
Converting Assembly Language to Machine Code
Converting Assembly Language to Machine Code
Converting Assembly Language to Machine Code
Example
Example
Introduction to MDA-Win 8086 Trainer Kit
Introduction to MDA-Win 8086 Trainer Kit
Label Mnemonic Hex code Memory
address
Remarks
CODE SEGMENT 0040: Higher order
ASSUME CS: CODE & DS: CODE result will be
MOV AX, 1234H B8, 34, 12 00, 01, 02 stored in DX
MOV CX, 0034H B9, 34, 00 03, 04, 05 & lower order
MUL CX F7, E1 06, 07 in AX
HLT F4 08
CODE ENDS
END
51
Executing a program in MTS-86C
Do the program in the trainer
Kit for Sum and subtraction of
two 16 bit number

8086 Micro-processor and MDA 8086 Trainer Kit

  • 1.
    Department of Electricaland Electronic Engineering Khulna University of Engineering & Technology Khulna-9203 Course code : EE 3214 Sessional on Microprocessors, Micro-controllers and Peripherals Presented By Amit Kumer Podder Experiment No. 05
  • 2.
    (a) Introduction to8086 Microprocessor Internal Architecture, Addressing modes and Hex code (b) Constructing the Machine code for 8086 instruction (c) Familiarization with MDA-Win 8086 Microprocessor Trainer Kit Experiment Name
  • 3.
  • 4.
    4 Key Features:  Releasedby Intel in 1978  Produced from 1978 to 1990s  A 16-bit microprocessor chip.  Max. CPU clock rate : 5 MHz to 10 MHz  Instruction set: x86-16  Package: 40 pin DIP  The 8086 gave rise to the x86 architecture of Intel's future processors.  Common manufacturer(s): Intel, AMD, NEC, Fujitsu, Harris (Intersil), OKI, Siemens AG, Texas Instruments, Mitsubishi. Intel 8086 Microprocessor
  • 5.
    5  It isavailable in three versions:  8086 (5 MHz)  8086-2 (8 MHz)  8086-1 (10 MHz)  It consists of 29,000 transistors. Intel 8086 Microprocessor
  • 6.
    • It hasa 16 line data bus. • And 20 line address bus. • It could address up to 1 MB of memory. • It has more than 20,000 instructions. • It supports multiplication and division. 6 Intel 8086 Microprocessor
  • 7.
    7 Pin diagram 8086Microprocessor
  • 8.
    8  These linesare multiplexed bi-directional address/data bus.  During T1, they carry lower order 16-bit address.  In the remaining clock cycles, they carry 16-bit data.  AD0-AD7 carry lower order byte of data.  AD8-AD15 carry higher order byte of data.
  • 9.
    9  These linesare multiplexed unidirectional address and status bus.  During T1, they carry higher order 4-bit address.  In the remaining clock cycles, they carry status signals.
  • 10.
    10  BHE standsfor Bus High Enable.  BHE signal is used to indicate the transfer of data over higher order data bus (D8 – D15).  8-bit I/O devices use this signal.  It is multiplexed with status pin S7.
  • 11.
    11  It isa read signal used for read operation.  It is an output signal.  It is an active low signal.
  • 12.
    12  This isan acknowledgement signal from slower I/O devices or memory.  It is an active high signal.  When high, it indicates that the device is ready to transfer data.  When low, then microprocessor is in wait state.
  • 13.
    13 RESET Pin 21 (Input) •It is a system reset. • It is an active high signal. • When high, microprocessor enters into reset state and terminates the current activity. • It must be active for at least four clock cycles to reset the microprocessor.
  • 14.
    14 INTR Pin 18 (Input) •It is an interrupt request signal. • It is active high. • It is level triggered.
  • 15.
    15 NMI Pin 17 (Input) •It is a non-maskable interrupt signal. • It is an active high. • It is an edge triggered interrupt.
  • 16.
    16 TEST Pin 23 (Input) •It is used to test the status of math co-processor 8087. • The BUSY pin of 8087 is connected to this pin of 8086. • If low, execution continues else microprocessor is in wait state.
  • 17.
    17 CLK Pin 19 (Input) •This clock input provides the basic timing for processor operation. • It is symmetric square wave with 33% duty cycle. • The range of frequency of different versions is 5 MHz, 8 MHz and 10 MHz.
  • 18.
    18 VCC and VSS Pin40 and Pin 20 (Input) • VCC is power supply signal. • +5V DC is supplied through this pin. • VSS is ground signal.
  • 19.
    19 MN / MX Pin33 (Input) • 8086 works in two modes: • Minimum Mode • Maximum Mode • If MN/MX is high, it works in minimum mode. • If MN/MX is low, it works in maximum mode.
  • 20.
    8086 INTERNAL ARCHITECTURE Fig:8086 Internal block diagram . 20
  • 21.
    8086 microprocessor • 16bit- microprocessor • 16-bits data bus 21 Microprocessor 8086 Data Bus Control signals Add Bus Address Bus – 20 lines – A19 – A0 Data Bus – 16 lines – D15 – D0
  • 22.
    BIU and EU •BIU (bus interface unit) sends out addresses, fetches instructions from memory, reads data from ports and memory, and writes data to ports and memory. In other words, the BIU handles all transfers of data and addresses on the buses for the execution unit. • EU (execution unit) of the 8086 tells the BIU where to fetch instructions or data from, decodes instructions, and executes instructions. 22
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
    Addressing Modes of8086 Addressing modes refer to the different methods of addressing the operands. Addressing modes of 8086 are as follows: Immediate addressing mode- In this mode, the operand is specified in the instruction itself. Instructions are longer but the operands are easily identified. Example: MOV CL, 12H This instruction moves 12 immediately into CL register. CL ← 12H Register addressing mode- In this mode, operands are specified using registers. This addressing mode is normally preferred because the instructions are compact and fastest executing of all instruction forms. Registers may be used as source operands, destination operands or both. Example: MOV AX, BX This instruction copies the contents of BX register into AX register. AX ← BX
  • 32.
    Direct memory addressingmode- In this mode, address of the operand is directly specified in the instruction. Here only the offset address is specified, the segment being indicated by the instruction. Example: MOV CL, [4321H] This instruction moves data from location 4321H in the data segment into CL. The physical address is calculated as DS * 10H + 4321 Assume DS = 5000H ∴PA = 50000 + 4321 = 54321H ∴CL ← [54321H] Addressing Modes of 8086
  • 33.
    Register based indirectaddressing mode- In this mode, the effective address of the memory may be taken directly from one of the base register or index register specified by instruction. If register is SI, DI and BX then DS is by default segment register. If BP is used, then SS is by default segment register. Example: MOV CX, [BX] This instruction moves a word from the address pointed by BX and BX + 1 in data segment into CL and CH respectively. CL ← DS: [BX] and CH ← DS: [BX + 1] Physical address can be calculated as DS * 10H + BX. Register relative addressing mode- In this mode, the operand address is calculated using one of the base registers and an 8 bit or a 16 bit displacement. Example: MOV CL, [BX + 04H] This instruction moves a byte from the address pointed by BX + 4 in data segment to CL. CL ← DS: [BX + 04H] Physical address can be calculated as DS * 10H + BX + 4H. Addressing Modes of 8086
  • 34.
    Base indexed addressingmode- Here, operand address is calculated as base register plus an index register. Example: MOV CL, [BX + SI] This instruction moves a byte from the address pointed by BX + SI in data segment to CL. CL ← DS: [BX + SI] Physical address can be calculated as DS * 10H + BX + SI. Relative based indexed addressing mode- In this mode, the address of the operand is calculated as the sum of base register, index register and 8 bit or 16 bit displacement. Example: MOV CL, [BX + DI + 20] This instruction moves a byte from the address pointed by BX + DI + 20H in data segment to CL. CL ← DS: [BX + DI + 20H] Physical address can be calculated as DS * 10H + BX + DI + 20H. Addressing Modes of 8086
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
    Introduction to MDA-Win8086 Trainer Kit
  • 50.
    Introduction to MDA-Win8086 Trainer Kit
  • 51.
    Label Mnemonic Hexcode Memory address Remarks CODE SEGMENT 0040: Higher order ASSUME CS: CODE & DS: CODE result will be MOV AX, 1234H B8, 34, 12 00, 01, 02 stored in DX MOV CX, 0034H B9, 34, 00 03, 04, 05 & lower order MUL CX F7, E1 06, 07 in AX HLT F4 08 CODE ENDS END 51 Executing a program in MTS-86C
  • 52.
    Do the programin the trainer Kit for Sum and subtraction of two 16 bit number