The following figure illustrates the pin-outs of the 8086 and 8088 microprocessors. From the outside, there is virtually no difference betveen these two microprocessors- both are packaged in 40 pin dual in-line packages(DIPs).
We will see the pin functions in different categories. CPU can operate in two modes:minimum mode and maximum mode.
Least expensive way to operate 8086 microprocessors, because all the control signals for the memory and IO are generated by the microprocessor. They are identical to those of 8085A.
Minimum mode signals:
| Address/data/status | ||
| AD15-AD0 | address/data bus | Bidirectional, 3-state |
| A19/S6-A16/S3 | address/status bus | output,3-state |
| Handshaking for data read/write | ||
| RD' | read from memory/IO | output,3-state |
| READY | ready signal | input |
| M/IO' | select memory or IO | output,3-state |
| WR' | Write to memory/IO | output,3-state |
| ALE | Address latch enable | output |
| DT/R' | data transmit/receive | output |
| DEN | Data bus enable | output |
| BHE'/S7 | bus high enable | output |
| Interrupt signals | ||
| INTR | interrupt request | input |
| NMI | non-maskable interrupt | input |
| RESET | reset | input |
| INTA' | interrupt acknowledge | output |
| Bus access control | ||
| HOLD | Hold request | input |
| HLDA | Hold acknowledge,whether the CPU is in hold state | output |
| Others | ||
| SSO' | a status bit combined with IO/M' and DT/R' | output |
| TEST' | test pin tested by WAIT instruction | input |
| MN/MX' | Minimum/maximum mode, 5V | input |
| CLK | clock pin for basic timing signal | input |
| Vcc | power supply, +5.0V, |
|
| GND | ground connection, 0V | |
During the hold acknowledge, AD15-AD0,A19/S6-A16/S3,RD',M/IO',WR' pins are in high-impedance state.
Function of status bits s3 and s4
| S4 | S3 | Function |
| 0 | 0 | ES, Extra segment |
| 0 | 1 | SS, Stack Segment |
| 1 | 0 | CS or no segment |
| 1 | 1 | DS, Data segment |
The 8086/8088 processors use the memory and IO in periods of time called bus cycles. In 8086/8088 there are three basic cycles using data bus:
| IO/M' | DT/R' | SSO' | Function |
| 0 | 0 | 0 | Interrupt acknowledge |
| 0 | 0 | 1 | Memory read |
| 0 | 1 | 0 | Memory write |
| 0 | 1 | 1 | Halt |
| 1 | 0 | 0 | Opcode fetch |
| 1 | 0 | 1 | IO read |
| 1 | 1 | 0 | IO write |
| 1 | 1 | 1 | Passive |
Maximum mode signals
| Address/data/status | ||
| AD15-AD0 | address/data bus | Bidirectional, 3-state |
| A19/S6-A16/S3 | address/status bus | output,3-state |
| Handshaking for data read/write | ||
| RD' | read from memory/IO | output,3-state |
| READY | ready signal | input |
| BHE'/S7 | bus high enable | output |
| S2',S1',S0' | status/handshake bits indicating the function of the current bus cycle | output |
| Interrupt signals | ||
| INTR | interrupt request | input |
| NMI | non-maskable interrupt | input |
| RESET | reset | input |
| Bus access control | ||
| RO'/GT1',RO'/GT0' | request/grant pins for bus access | bidirectional |
| LOCK' | used to lock the bus, activated by LOCK prefix on any instruction | output |
| Others | ||
| QS1,QS0 | queue status | output |
| TEST' | test pin tested by WAIT instruction | input |
| MN/MX' | Minimum/maximum mode, 0V | input |
| CLK | clock pin for basic timing signal | input |
| Vcc | power supply, +5.0V, |
|
| GND | ground connection, 0V | |
| s2' | S1' | S0' | Function |
| 0 | 0 | 0 | Interrupt acknowledge |
| 0 | 0 | 1 | Memory read |
| 0 | 1 | 0 | Memory write |
| 0 | 1 | 1 | Halt |
| 1 | 0 | 0 | Opcode fetch |
| 1 | 0 | 1 | IO read |
| 1 | 1 | 0 | IO write |
| 1 | 1 | 1 | Passive |
Maximum mode operation differs from minimum mode in that some of the control signals must be externally generated. This requires additional circuitry, however, a chip -the 8288 bus controller- designed for this purpose is available.
The 8086/8088 processors use the memory and IO in periods of time called bus cycles. In 8086/8088 there are three basic cycles using data bus:
The following is the simplified time diagram of the common bus signals to read and write data from/to memory and IO.
The followings are the input and output DC characteristics of the 8086/8088 microprocessors.
Input DC Characteristics
| Logic level | Voltage | Current |
| 0 | 0.8V max | |
| 1 | 2.0V min |
Output DC Characteristics
| Logic level | Voltage | Current |
| 0 | 0.45V max | |
| 1 | 2.4V min |
This means if the sink current exceeds
,
then the output voltage exceeds 0.45V. If the source current exceeds
then the output voltage drops below 2.4V.
Let calculate the maximum number of 74LSXXX devices that can be connected to the output pins of the 8086 processor.
The input characteristics of 74LSXXX devices
| Logic level | Voltage | Current |
| 0 | 0.8V max | |
| 1 | 2.0V min |
The not READY signal from the IO and memory components causes wait states for slower memory and IO components. A wait state(Tw) is an extra clocking period, inserted between T2 and T3, that lengthens the bus cycle.
The READY input is sampled (by the processor) at the end of T' and ,if applicable, in the middle of Tw. If READY is at logic 0 at the end of T2, then T3 is delayed and a Tw is inserted. READY is next sampled at the middle of Tw to determine if the next state is again a Tw or T3.
A circuit that will cause between 0 and 7 wait states are illustrated in the following figure:
To see if this circuit really works, let see the timings.
Now the question is "is this circuit really works as specified in the timing diagram?". To see this let investigate the timing where the CLK and CLR' input to the shift register rises.
Time from the beginning of T2 to
Time from the beginning of T2 to
As seen for the extreme cases, the CLR' signal is still active when the CLK is in rising edge state. So the timing diagram of this circuit can not be the given. On the other hand, for some other cases(not extreme) this circuit works as proposed.
Conclusion: It is not a reliable READY circuit.
Each instruction must be fetched before executed. Also instructions need to read and write data to the memory/IO units. BIU(Bus interface Unit) of 8086 is responsible to do all read and write operations and it does this by read and write cycles. The following figure illustrates this.