fig 8-4 p-341. s 5 =if flag (interrupt enable). s 6 =0 always

86

Upload: rodger-whitehead

Post on 29-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 2: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 3: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 4: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 5: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 6: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 7: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Fig 8-4 p-341.

S5=IF flag (interrupt Enable).

S6=0 always.

Page 8: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

SSO=during read cycle, it is identifies whether a code or data access is in progress.

Page 9: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 10: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 11: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 12: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 13: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 14: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 15: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 16: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 17: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 18: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 19: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 20: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 21: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 22: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 23: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 24: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 25: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 26: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 27: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 28: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 29: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 30: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 31: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 32: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 33: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 34: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 35: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 36: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 37: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 38: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 39: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 40: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 41: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 42: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 43: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 44: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 45: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 46: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 47: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 48: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 49: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 50: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 51: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 52: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 53: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 54: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Types of I/O for 8088/8086

• Input/output system allows peripherals to:– Provide data or – Receive results after processing the data.

• Implemented using I/O ports.

• Employs two different types of I/O:– Isolated I/O.– Memory mapped I/O.

• Method differs in how I/O ports are mapped into MPU’s address spaces.

• Some microcomputer employs both method.

Page 55: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Isolated I/O• I/O devices treated separately from memory.

– Hardware and software architecture of 8088/8086 support separate memory I/O address space.

• Can be accessed as either byte-wide or word-wide.

• Can be treated as either independent byte-wide I/O ports or word-wide I/O ports.

• Page 0:– Certain I/O instructions can only perform operations to

ports in this part of the address range.– Other I/O instructions can input/output data for ports

anywhere in the address space.

Page 56: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Isolated I/O

FFFFPort 65 535

I/O address space

00FFPort 255

00FEPort 254

.

.

.

.

.

.

0004Port 4

0003Port 3

0002Port 2

0001Port 1

0000Port 0Port 0 (16 bit port)

Port 1 (16 bit port)

Page 0

Page 57: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Isolated I/O

• Advantages:– 1 MByte memory address space is available for use

with memory.– Special instructions have been provided in the

instruction set of 8088/8086 to perform isolated I/O input and output operations.

• These instructions have been tailored to maximize I/O performance.

• Disadvantages:– All input and output data transfers must take place

between AL or AX register and the I/O port.

Page 58: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Memory-mapped I/O

• I/O devices is placed in memory address space of the microcomputer.– The memory address space is assigned

to I/O devices.– MPU looks at the I/O port as though it is

a storage location in memory.– Make use of instructions that affect data

in memory rather than special input/output instructions.

Page 59: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Memory-mapped I/O

FFFFF

:Memory address space

:

E0FFF

::I/O ports

::

E0003

E0002

E0001

E0000

:::

00001

00000

Port 4095

::

I/O ports::

Port 3

Port 2

Port 1

Port 0

I/O addresses

Port 0

)16 bit port(

Port 1

)16 bit port(

Page 60: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Memory-mapped I/O

• Advantages:– Many more instructions and addressing modes

are available to perform I/O operations.– I/O transfers can now take place between I/O port

and internal registers other than just AL/AX.

• Disadvantages:– Memory instructions tend to execute slower than

those specifically designed for isolated I/O.– Part of the memory address space is lost.

Page 61: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Isolated Input/Output Interface

• The interface permits 8088/8086 microcomputers to communicate with the outside world.

• The interface between MPU and I/O is similar to MPU and memory.

• Input output data transfers also take place over the multiplexed address/data bus.

• Through this I/O interface, the MPU can input or output data in bit, byte or word (8086) formats.

Page 62: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Isolated Input Output Interface :: Minimum-mode Interface

Minimum-mode 8088 system I/O interface

Page 63: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Isolated Input Output Interface :: Minimum-mode Interface

Minimum-mode 8086 system I/O interface

Page 64: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Isolated Input Output Interface :: Minimum-mode Interface

• Example of I/O device:– Keyboard (input).– Printer (output).– Asynchronous serial communications port

(input/output).

• Circuits in the interface section must perform functions such as:– Select I/O port.– Latch output data.– Sample input data.– Synchronize data transfers.

Page 65: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Isolated Input Output Interface :: Minimum-mode Interface (8088)

• Data/Address Lines:– Multiplexed address/data bus.– Only 16 least significant lines used.

• AD0-AD7 and A8-A15.

• Control Signals:– Similar to memory interface.

• Difference between 8088 and 8086.– Complete data bus used for data transfer.

• AD0-AD15.– M/IO complement of IO/M.– SSO replaced with BHE.

Page 66: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Isolated Input Output Interface :: Maximum-mode Interface

Maximum-mode 8088 system I/O interface Maximum-mode 8086 system I/O interface

Page 67: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Isolated Input Output Interface :: Maximum-mode Interface (8088/86)

• 8288 bus controller produces control signals for the I/O subsystems.

• Decoded S2S1S0 will determine which type of bus cycle is in progress.

• If code corresponds to:– I/O read bus cycle , 8288 generates IORC. – I/O write bus cycle, then IOWC and AIOWC generated.

• 8288 also produces ALE, DT/R and DEN control signals.

• Data and addresses are transferred over AD0-AD7 and A8-A15.

• 8086 differs from 8088 as follows:– 16 bit data bus is the path for data transfers.– Signal BHE is included.

Page 68: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Input Output Data Transfers

• Data transfers:– Byte-wide or word-wide.

• I/O address used to select the input/output port to be accessed.– I/O address specified as part of the instruction that performs the I/O

operation.

• The addresses:– 16 bits in length.– Output over AD0 (LSb) – AD7 and A8-A15 (MSb).

• The most significant address lines A16-A19 = 0 during address period (T1) of all bus cycles.

• IO/M determines I/O operations. Held at 1 during the complete input/output bus cycles.

Page 69: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Input Output Data Transfers

• Data transfer (8088).– Performed over data bus.– Byte-wide transfers = 1 cycle (D0-D7).– Word-wide transfers require two bus cycles.

• Two consecutive byte-wide data transfers.

• Data transfer (8086):– The addresses are output on address/data bus lines AD0-

AD15.– A0 and BHE determine whether access at odd-addressed

byte-wide port, even-addressed byte-wide port or word-wide port.

• i.e. A0BHE = 10 odd-addressed byte wide I/O port is accessed.

Page 70: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Input Output Data Transfers

– Even and odd addressed byte transfer require 1 bus cycle.

• Even-addressed byte transfer D0-D7.

• Odd-addressed byte transfer D8-D15.

– Word data transfer can either require one or two bus cycles .

• Word data transfer performed over D0-D15.

• One cycle word transfer I/O port is aligned at even address boundaries.

• Two cycles word transfer Misaligned word.

Page 71: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Input Output Instructions

• Isolated I/O mode uses special input and output instructions together with I/O port addressing modes.

• Can either be direct or variable I/O instructions.– Can be used to transfer byte/word.– All data transfer take place over I/O device

and accumulator register (AL/AX).• Known as accumulator I/O.

– Byte/word wide transfer determined by AL/AX.

Page 72: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Input Output Instructions

MnemonicMeaningFormat Operation

INInput directIN Acc, Prt(Acc) (Port)

Acc = AL or AX

Input indirect (variable)

IN Acc, DX(Acc) ((DX))

OUTOutput directOUT Prt, Acc(Port) (Acc)

Output indirect (variable)

OUT DX, Acc((DX)) (Acc)

Input/output instructions

Page 73: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Input Output Instructions :: Direct I/O Instructions

• Address of the I/O port:– Specified as part of the instruction.

• 8 bits provided for direct address, thus:– Address range is limited to 0016-FF16.– This range is referred as page 0 in I/O address space.

• i.e. IN AL, 0FEH – (AL) (FE16)– Content of address FE to be input to the AL register.– Only one bus cycle.

Page 74: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Input Output Instructions :: Direct I/O Instructions

• Example 2:

– Write a sequence of instructions that will output the data 3416 to a byte-wide output port at address 8916 of the I/O address space.

Page 75: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Input Output Instructions

• Difference between direct and variable:– The way in which the address of the I/O port is

specified.– Direct 8 bit address is specified as part of the

instruction.– Variable use 16 bit address in DX register.

• (DX) is not an offset but actual address.

• Variable I/O instructions can access ports located anywhere in the 64 K byte I/O address space.

• Data/address must be loaded into or removed from AL/AX/DX before another input or output operation can be performed.

Page 76: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Input Output Instructions

• Example 2:

– Write a program that will output DA16 to an output port located at address EA2016 of the I/O address space.

– Data are to be read in from two byte-wide input ports at address AA16 and BA16 and then output as a word-wide output port at address B00016. Write a program to perform this input/output operation.

Page 77: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Input Output Bus Cycles

• Signals (minimum-mode) similar to those involved in memory interface.

• Function, logic levels and timing of all signals other than IO/M are identical to section 8.11.

• IO/M changes at logic level, not the timing.

Page 78: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Input Bus Cycles :: 8088

• T1: – IO/M =1 and maintained

throughout the cycle.• Indicate IO operation.

– ALE output together with address.

– DEN =0.• Signals interface circuitry

when to put data onto the bus.

• 8088 reads data off the bus during period T3.

Input bus cycle of the 8088

Page 79: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Output Bus Cycles :: 8088

• 8088 puts data on the bus late in T2 and maintains it during the rest of the bus cycle.

• This time WR = 0.– Signals I/O system that

valid data are on the bus.

Output bus cycle of the 8088

Page 80: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always

Input Bus Cycles :: 8086

• Differences:

– BHE output along with address in state T1.

• Used with A0 to select even/odd address byte/word wide port.

– Data transfer over 16 bit address/data bus at T3.

– M/IO replaces IO/M.– SSO = none.

Refer figure 8-52 & 8-53

Page 81: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 82: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 83: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 84: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 85: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always
Page 86: Fig 8-4 p-341. S 5 =IF flag (interrupt Enable). S 6 =0 always