80186/80188 HIGH-INTEGRATION 16-BIT MICROPROCESSORS Y Integrated Feature Set Ð Enhanced 8086-2 CPU Ð Clock Generator Ð 2 Independent DMA Channels Ð Programmable Interrupt Controller Ð 3 Programmable 16-bit Timers Ð Programmable Memory and Peripheral Chip-Select Logic Ð Programmable Wait State Generator Ð Local Bus Controller Y Available in 10 MHz and 8 MHz Versions Y High-Performance Processor Ð 4 Mbyte/Sec Bus Bandwidth Interface @ 8 MHz (80186) Ð 5 Mbyte/Sec Bus Bandwidth Interface @ 10 MHz (80186) Y Direct Addressing Capability to 1 Mbyte of Memory and 64 Kbyte I/O Y Completely Object Code Compatible with All Existing 8086, 8088 Software Ð 10 New Instruction Types Y Numerics Coprocessing Capability Through 8087 Interface Y Available in 68 Pin: Ð Plastic Leaded Chip Carrier (PLCC) Ð Ceramic Pin Grid Array (PGA) Ð Ceramic Leadless Chip Carrier (LCC) Y Available in EXPRESS Ð Standard Temperature with Burn-In Ð Extended Temperature Range ( b 40§ C to a 85§ C) 272430 – 1 Figure 1. Block Diagram *Other brands and names are the property of their respective owners. Information in this document is provided in connection with Intel products. Intel assumes no liability whatsoever, including infringement of any patent or copyright, for sale and use of Intel products except as provided in Intel’s Terms and Conditions of Sale for such products. Intel retains the right to make changes to these specifications at any time, without notice. Microcomputer Products may have minor variations to this specification known as errata. November 1994 COPYRIGHT © INTEL CORPORATION, 1995 Order Number: 272430-002 1 80186/80188 High-Integration 16-Bit Microprocessors CONTENTS PAGE FUNCTIONAL DESCRIPTION ÀÀÀÀÀÀÀÀÀÀÀÀÀ 9 Introduction ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 9 CLOCK GENERATOR ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 9 Oscillator ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 9 Clock Generator ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 9 READY Synchronization ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 9 RESET Logic ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 9 LOCAL BUS CONTROLLER ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 9 Memory/Peripheral Control ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 10 Local Bus Arbitration ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 10 Local Bus Controller and Reset ÀÀÀÀÀÀÀÀÀÀÀÀ 10 PERIPHERAL ARCHITECTURE ÀÀÀÀÀÀÀÀÀÀ 10 Chip-Select/Ready Generation Logic ÀÀÀÀÀÀ 10 DMA Channels ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 11 Timers ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 11 Interrupt Controller ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 12 CONTENTS PAGE ABSOLUTE MAXIMUM RATINGS ÀÀÀÀÀÀÀÀ 15 D.C. CHARACTERISTICS ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 15 A.C. CHARACTERISTICS ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 16 EXPLANATION OF THE AC SYMBOLS ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 18 WAVEFORMS ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 19 EXPRESS ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 25 EXECUTION TIMINGS ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 26 INSTRUCTION SET SUMMARY ÀÀÀÀÀÀÀÀÀÀ 27 FOOTNOTES ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 32 REVISION HISTORY ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 33 2 2 80186/80188 Contacts Facing Down Contacts Facing Up 272430 – 2 Figure 2. Ceramic Leadless Chip Carrier (JEDEC Type A) Pins Facing Up Pins Facing Down 272430 – 3 Figure 3. Ceramic Pin Grid Array NOTE: Pin names in parentheses apply to the 80188. 3 3 80186/80188 Leads Facing Up Leads Facing Down 272430 – 4 Figure 4. Plastic Leaded Chip Carrier NOTE: Pin names in parentheses apply to the 80188. 4 4 80186/80188 Table 1. Pin Descriptions Symbol Pin No. Type Name and Function VCC 9 43 I SYSTEM POWER: a 5 volt power supply. VSS 26 60 I System Ground. RESET 57 O Reset Output indicates that the CPU is being reset, and can be used as a system reset. It is active HIGH, synchronized with the processor clock, and lasts an integer number of clock periods corresponding to the length of the RES signal. X1 X2 59 58 I O Crystal Inputs X1 and X2 provide external connections for a fundamental mode parallel resonant crystal for the internal oscillator. Instead of using a crystal, an external clock may be applied to X1 while minimizing stray capacitance on X2. The input or oscillator frequency is internally divided by two to generate the clock signal (CLKOUT). CLKOUT 56 O Clock Output provides the system with a 50% duty cycle waveform. All device pin timings are specified relative to CLKOUT. RES 24 I An active RES causes the processor to immediately terminate its present activity, clear the internal logic, and enter a dormant state. This signal may be asynchronous to the processor clock. The processor begins fetching instructions approximately 6(/2 clock cycles after RES is returned HIGH. For proper initialization, VCC must be within specifications and the clock signal must be stable for more than 4 clocks with RES held LOW. RES is internally synchronized. This input is provided with a Schmitt-trigger to facilitate power-on RES generation via an RC network. TEST 47 I/O TEST is examined by the WAIT instruction. If the TEST input is HIGH when ‘‘WAIT’’ execution begins, instruction execution will suspend. TEST will be resampled until it goes LOW, at which time execution will resume. If interrupts are enabled while the processor is waiting for TEST, interrupts will be serviced. During power-up, active RES is required to configure TEST as an input. This pin is synchronized internally. TMR IN 0 TMR IN 1 20 21 I I Timer Inputs are used either as clock or control signals, depending upon the programmed timer mode. These inputs are active HIGH (or LOW-to-HIGH transitions are counted) and internally synchronized. TMR OUT 0 TMR OUT 1 22 23 O O Timer outputs are used to provide single pulse or continous waveform generation, depending upon the timer mode selected. DRQ0 DRQ1 18 19 I I DMA Request is asserted HIGH by an external device when it is ready for DMA Channel 0 or 1 to perform a transfer. These signals are level-triggered and internally synchronized. NMI 46 I The Non-Maskable Interrupt input causes a Type 2 interrupt. An NMI transition from LOW to HIGH is latched and synchronized internally, and initiates the interrupt at the next instruction boundary. NMI must be asserted for at least one clock. The Non-Maskable Interrupt cannot be avoided by programming. INT0 INT1/SELECT INT2/INTA0 INT3/INTA1/IRQ 45 44 42 41 I I I/O I/O Maskable Interrupt Requests can be requested by activating one of these pins. When configured as inputs, these pins are active HIGH. Interrupt Requests are synchronized internally. INT2 and INT3 may be configured to provide activeLOW interrupt-acknowledge output signals. All interrupt inputs may be configured to be either edge- or level-triggered. To ensure recognition, all interrupt requests must remain active until the interrupt is acknowledged. When Slave Mode is selected, the function of these pins changes (see Interrupt Controller section of this data sheet). NOTE: Pin names in parentheses apply to the 80188. 5 5 80186/80188 Table 1. Pin Descriptions (Continued) Pin No. Type A19/S6 A18/S5 A17/S4 A16/S3 65 66 67 68 O O O O AD15 (A15) AD14 (A14) AD13 (A13) AD12 (A12) AD11 (A11) AD10 (A10) AD9 (A9) AD8 (A8) AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 1 3 5 7 10 12 14 16 2 4 6 8 11 13 15 17 I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O Address/Data Bus signals constitute the time multiplexed memory or I/O address (T1) and data (T2, T3, TW, and T4) bus. The bus is active HIGH. A0 is analogous to BHE for the lower byte of the data bus, pins D7 through D0. It is LOW during T1 when a byte is to be transferred onto the lower portion of the bus in memory or I/O operations. BHE does not exist on the 80188, as the data bus is only 8 bits wide. BHE/S7 (S7) 64 O During T1 the Bus High Enable signal should be used to determine if data is to be enabled onto the most significant half of the data bus; pins D15 –D8. BHE is LOW during T1 for read, write, and interrupt acknowledge cycles when a byte is to be transferred on the higher half of the bus. The S7 status information is available during T2, T3, and T4. S7 is logically equivalent to BHE. BHE/S7 floats during HOLD. On the 80188, S7 is high during normal operation. Symbol Name and Function Address Bus Outputs (16–19) and Bus Cycle Status (3–6) indicate the four most significant address bits during T1. These signals are active HIGH. During T2, T3, TW, and T4, the S6 pin is LOW to indicate a CPU-initiated bus cycle or HIGH to indicate a DMA-initiated bus cycle. During the same T-states, S3, S4, and S5 are always LOW. The status pins float during bus HOLD or RESET. BHE and A0 Encodings (80186 Only) BHE Value A0 Value 0 0 1 1 0 1 0 1 Function Word Transfer Byte Transfer on upper half of data bus (D15–D8) Byte Transfer on lower half of data bus (D7 –D0) Reserved ALE/QS0 61 O Address Latch Enable/Queue Status 0 is provided by the processor to latch the address. ALE is active HIGH. Addresses are guaranteed to be valid on the trailing edge of ALE. The ALE rising edge is generated off the rising edge of the CLKOUT immediately preceding T1 of the associated bus cycle, effectively one-half clock cycle earlier than in the 8086. The trailing edge is generated off the CLKOUT rising edge in T1 as in the 8086. Note that ALE is never floated. WR/QS1 63 O Write Strobe/Queue Status 1 indicates that the data on the bus is to be written into a memory or an I/O device. WR is active for T2, T3, and TW of any write cycle. It is active LOW, and floats during HOLD. When the processor is in queue status mode, the ALE/ QS0 and WR/QS1 pins provide information about processor/instruction queue interaction. QS1 QS0 Queue Operation 0 0 1 1 0 1 1 0 No queue operation First opcode byte fetched from the queue Subsequent byte fetched from the queue Empty the queue NOTE: Pin names in parentheses apply to the 80188. 6 6 80186/80188 Table 1. Pin Descriptions (Continued) Symbol Pin No. Type RD/QSMD 62 I/O Read Strobe is an active LOW signal which indicates that the processor is performing a memory or I/O read cycle. It is guaranteed not to go LOW before the A/D bus is floated. An internal pull-up ensures that RD is HIGH during RESET. Following RESET the pin is sampled to determine whether the processor is to provide ALE, RD, and WR, or queue status information. To enable Queue Status Mode, RD must be connected to GND. RD will float during bus HOLD. ARDY 55 I Asynchronous Ready informs the processor that the addressed memory space or I/O device will complete a data transfer. The ARDY pin accepts a rising edge that is asynchronous to CLKOUT, and is active HIGH. The falling edge of ARDY must be synchronized to the processor clock. Connecting ARDY HIGH will always assert the ready condition to the CPU. If this line is unused, it should be tied LOW to yield control to the SRDY pin. SRDY 49 I Synchronous Ready informs the processor that the addressed memory space or I/O device will complete a data transfer. The SRDY pin accepts an active-HIGH input synchronized to CLKOUT. The use of SRDY allows a relaxed system timing over ARDY. This is accomplished by elimination of the one-half clock cycle required to internally synchronize the ARDY input signal. Connecting SRDY high will always assert the ready condition to the CPU. If this line is unused, it should be tied LOW to yield control to the ARDY pin. LOCK 48 O LOCK output indicates that other system bus masters are not to gain control of the system bus while LOCK is active LOW. The LOCK signal is requested by the LOCK prefix instruction and is activated at the beginning of the first data cycle associated with the instruction following the LOCK prefix. It remains active until the completion of that instruction. No instruction prefetching will occur while LOCK is asserted. When executing more than one LOCK instruction, always make sure there are 6 bytes of code between the end of the first LOCK instruction and the start of the second LOCK instruction. LOCK is driven HIGH for one clock during RESET and then floated. S0 S1 S2 52 53 54 O O O Bus cycle status S0 –S2 are encoded to provide bus-transaction information: Name and Function Bus Cycle Status Information S2 S1 S0 Bus Cycle Initiated 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Interrupt Acknowledge Read I/O Write I/O Halt Instruction Fetch Read Data from Memory Write Data to Memory Passive (no bus cycle) The status pins float during HOLD. S2 may be used as a logical M/IO indicator, and S1 as a DT/R indicator. NOTE: Pin names in parentheses apply to the 80188. 7 7 80186/80188 Table 1. Pin Descriptions (Continued) Pin No. Type Name and Function HOLD HLDA 50 51 I O HOLD indicates that another bus master is requesting the local bus. The HOLD input is active HIGH. HOLD may be asynchronous with respect to the processor clock. The processor will issue a HLDA (HIGH) in response to a HOLD request at the end of T4 or Ti. Simultaneous with the issuance of HLDA, the processor will float the local bus and control lines. After HOLD is detected as being LOW, the processor will lower HLDA. When the processor needs to run another bus cycle, it will again drive the local bus and control lines. UCS 34 O Upper Memory Chip Select is an active LOW output whenever a memory reference is made to the defined upper portion (1K – 256K block) of memory. This line is not floated during bus HOLD. The address range activating UCS is software programmable. LCS 33 O Lower Memory Chip Select is active LOW whenever a memory reference is made to the defined lower portion (1K – 256K) of memory. This line is not floated during bus HOLD. The address range activating LCS is software programmable. MCS0 MCS1 MCS2 MCS3 38 37 36 35 O O O O Mid-Range Memory Chip Select signals are active LOW when a memory reference is made to the defined mid-range portion of memory (8K – 512K). These lines are not floated during bus HOLD. The address ranges activating MCS0 –3 are software programmable. PCS0 PCS1 PCS2 PCS3 PCS4 25 27 28 29 30 O O O O O Peripheral Chip Select signals 0 – 4 are active LOW when a reference is made to the defined peripheral area (64 Kbyte I/O space). These lines are not floated during bus HOLD. The address ranges activating PCS0 – 4 are software programmable. PCS5/A1 31 O Peripheral Chip Select 5 or Latched A1 may be programmed to provide a sixth peripheral chip select, or to provide an internally latched A1 signal. The address range activating PCS5 is software-programmable. PCS5/A1 does not float during bus HOLD. When programmed to provide latched A1, this pin will retain the previously latched value during HOLD. PCS6/A2 32 O Peripheral Chip Select 6 or Latched A2 may be programmed to provide a seventh peripheral chip select, or to provide an internally latched A2 signal. The address range activating PCS6 is software programmable. PCS6/A2 does not float during bus HOLD. When programmed to provide latched A2, this pin will retain the previously latched value during HOLD. DT/R 40 O Data Transmit/Receive controls the direction of data flow through an external data bus transceiver. When LOW, data is transferred to the processsor. When HIGH, the processor places write data on the data bus. DEN 39 O Data Enable is provided as a data bus transceiver output enable. DEN is active LOW during each memory and I/O access. DEN is HIGH whenever DT/R changes state. During RESET, DEN is driven HIGH for one clock, then floated. DEN also floats during HOLD. Symbol NOTE: Pin names in parentheses apply to the 80188. 8 8 80186/80188 FUNCTIONAL DESCRIPTION Introduction The following Functional Description describes the base architecture of the 80186. The 80186 is a very high integration 16-bit microprocessor. It combines 15–20 of the most common microprocessor system components onto one chip while providing twice the performance of the standard 8086. The 80186 is object code compatible with the 8086/8088 microprocessors and adds 10 new instruction types to the 8086/8088 instruction set. For more detailed information on the architecture, please refer to the 80C186XL/80C188XL User’s Manual. The 80186 and the 80186XL devices are functionally and register compatible. CLOCK GENERATOR The processor provides an on-chip clock generator for both internal and external clock generation. The clock generator features a crystal oscillator, a divideby-two counter, synchronous and asynchronous ready inputs, and reset circuitry. Oscillator The oscillator circuit is designed to be used with a parallel resonant fundamental mode crystal. This is used as the time base for the processor. The crystal frequency selected will be double the CPU clock frequency. Use of an LC or RC circuit is not recommended with this oscillator. If an external oscillator is used, it can be connected directly to the input pin X1 in lieu of a crystal. The output of the oscillator is not directly available outside the processor. The recommended crystal configuration is shown in Figure 5. Intel recommends the following values for crystal selection parameters: Temperature Range: 0 to 70§ C ESR (Equivalent Series Resistance): 30X max C0 (Shunt Capacitance of Crystal): 7.0 pf max 20 pf g 2 pf C1 (Load Capacitance): Drive Level: 1 mW max Clock Generator The clock generator provides the 50% duty cycle processor clock for the processor. It does this by dividing the oscillator output by 2 forming the symmetrical clock. If an external oscillator is used, the state of the clock generator will change on the falling edge of the oscillator signal. The CLKOUT pin provides the processor clock signal for use outside the device. This may be used to drive other system components. All timings are referenced to the output clock. READY Synchronization The processor provides both synchronous and asynchronous ready inputs. In addition, the processor, as part of the integrated chip-select logic, has the capability to program WAIT states for memory and peripheral blocks. RESET Logic The processor provides both a RES input pin and a synchronized RESET output pin for use with other system components. The RES input pin is provided with hysteresis in order to facilitate power-on Reset generation via an RC network. RESET output is guaranteed to remain active for at least five clocks given a RES input of at least six clocks. LOCAL BUS CONTROLLER The processor provides a local bus controller to generate the local bus control signals. In addition, it employs a HOLD/HLDA protocol for relinquishing the local bus to other bus masters. It also provides outputs that can be used to enable external buffers and to direct the flow of data on and off the local bus. 272430 – 5 x 80186-10 (10 MHz) 20 80186 (8 MHz) 16 Figure 5. Recommended Crystal Configuration 9 9 80186/80188 Memory/Peripheral Control The processor provides ALE, RD, and WR bus control signals. The RD and WR signals are used to strobe data from memory or I/O to the processor or to strobe data from the processor to memory or I/O. The ALE line provides a strobe to latch the address when it is valid. The local bus controller does not provide a memory/I/O signal. If this is required, use the S2 signal (which will require external latching), make the memory and I/O spaces nonoverlapping, or use only the integrated chip-select circuitry. Local Bus Arbitration The processor uses a HOLD/HLDA system of local bus exchange. This provides an asynchronous bus exchange mechanism. This means multiple masters utilizing the same bus can operate at separate clock frequencies. The processor provides a single HOLD/HLDA pair through which all other bus masters may gain control of the local bus. External circuitry must arbitrate which external device will gain control of the bus when there is more than one alternate local bus master. When the processor relinquishes control of the local bus, it floats DEN, RD, WR, S0–S2, LOCK, AD0–AD15 (AD0–AD7), A16–A19 (A8–A19), BHE (S7), and DT/R to allow another master to drive these lines directly. Local Bus Controller and Reset During RESET the local bus controller will perform the following action: # Drive DEN, RD, and WR HIGH for one clock cycle, then float. NOTE: RD is also provided with an internal pull-up device to prevent the processor from inadvertently entering Queue Status Mode during RESET. either memory or I/O space. Internal logic will recognize control block addresses and respond to bus cycles. During bus cycles to internal registers, the bus controller will signal the operation externally (i.e., the RD, WR, status, address, data, etc., lines will be driven as in a normal bus cycle), but D15–0 (D7–0), SRDY, and ARDY will be ignored. The base address of the control block must be on an even 256-byte boundary (i.e., the lower 8 bits of the base address are all zeros). The control block base address is programmed by a 16-bit relocation register contained within the control block at offset FEH from the base address of the control block. It provides the upper 12 bits of the base address of the control block. In addition to providing relocation information for the control block, the relocation register contains bits which place the interrupt controller into Slave Mode, and cause the CPU to interrupt upon encountering ESC instructions. Chip-Select/Ready Generation Logic The processor contains logic which provides programmable chip-select generation for both memories and peripherals. In addition, it can be programmed to provide READY (or WAIT state) generation. It can also provide latched address bits A1 and A2. The chip-select lines are active for all memory and I/O cycles in their programmed areas, whether they be generated by the CPU or by the integrated DMA unit. MEMORY CHIP SELECTS The processor provides 6 memory chip select outputs for 3 address areas; upper memory, lower memory, and midrange memory. One each is provided for upper memory and lower memory, while four are provided for midrange memory. # Drive S0–S2 to the inactive state (all HIGH) and then float. # Drive LOCK HIGH and then float. # Float AD0–15 (AD0–AD7), A16–19 (A8–A19), BHE (S7), DT/R. # Drive ALE LOW (ALE is never floated). # Drive HLDA LOW. PERIPHERAL ARCHITECTURE All of the integrated peripherals are controlled by 16-bit registers contained within an internal 256-byte control block. The control block may be mapped into UPPER MEMORY CS The processor provides a chip select, called UCS, for the top of memory. The top of memory is usually used as the system memory because after reset the processor begins executing at memory location FFFF0H. LOWER MEMORY CS The processor provides a chip select for low memory called LCS. The bottom of memory contains the interrupt vector table, starting at location 00000H. 10 10 80186/80188 The lower limit of memory defined by this chip select is always 0H, while the upper limit is programmable. By programming the upper limit, the size of the memory block is defined. # Upon leaving RESET, the UCS line will be pro- MID-RANGE MEMORY CS # No other chip select or READY control registers The processor provides four MCS lines which are active within a user-locatable memory block. This block can be located within the 1-Mbyte memory address space exclusive of the areas defined by UCS and LCS. Both the base address and size of this memory block are programmable. grammed to provide chip selects to a 1K block with the accompanying READY control bits set at 011 to insert 3 wait states in conjunction with external READY (i.e., UMCS resets to FFFBH). have any predefined values after RESET. They will not become active until the CPU accesses their control registers. Both the PACS and MPCS registers must be accessed before the PCS lines will become active. DMA Channels PERIPHERAL CHIP SELECTS The processor can generate chip selects for up to seven peripheral devices. These chip selects are active for seven contiguous blocks of 128 bytes above a programmable base address. The base address may be located in either memory or I/O space. Seven CS lines called PCS0 –6 are generated by the processor. PCS5 and PCS6 can also be programmed to provide latched address bits A1 and A2. If so programmed, they cannot be used as peripheral selects. These outputs can be connected directly to the A0 and A1 pins used for selecting internal registers of 8-bit peripheral chips. The DMA controller provides two independent DMA channels. Data transfers can occur between memory and I/O spaces (e.g., Memory to I/O) or within the same space (e.g., Memory to Memory or I/O to I/O). Data can be transferred either in bytes or in words (80186 only) to or from even or odd addresses. Each DMA channel maintains both a 20-bit source and destination pointer which can be optionally incremented or decremented after each data transfer (by one or two depending on byte or word transfers). Each data transfer consumes 2 bus cycles (a minimum of 8 clocks), one cycle to fetch data and the other to store data. This provides a maximum data transfer rate of 1.25 Mword/sec or 2.5 Mbytes/sec at 10 MHz (half of this rate for the 80188). READY GENERATION LOGIC The processor can generate a READY signal internally for each of the memory or peripheral CS lines. The number of WAIT states to be inserted for each peripheral or memory is programmable to provide 0–3 wait states for all accesses to the area for which the chip select is active. In addition, the processor may be programmed to either ignore external READY for each chip-select range individually or to factor external READY with the integrated ready generator. CHIP SELECT/READY LOGIC AND RESET Upon RESET, the Chip-Select/Ready Logic will perform the following actions: # All chip-select outputs will be driven HIGH. DMA CHANNELS AND RESET Upon RESET, the DMA channels will perform the following actions: # The Start/Stop bit for each channel will be reset to STOP. # Any transfer in progress is aborted. Timers The processor provides three internal 16-bit programmable timers. Two of these are highly flexible and are connected to four external pins (2 per timer). They can be used to count external events, time external events, generate nonrepetitive waveforms, etc. The third timer is not connected to any external pins, and is useful for real-time coding and time delay applications. In addition, the third timer can be used as a prescaler to the other two, or as a DMA request source. 11 11 80186/80188 TIMERS AND RESET INTERRUPT CONTROLLER AND RESET Upon RESET, the Timers will perform the following actions: Upon RESET, the interrupt controller will perform the following actions: # All SFNM bits reset to 0, implying Fully Nested Mode. # All PR bits in the various control registers set to 1. This places all sources at lowest priority (level 111). # All EN (Enable) bits are reset preventing timer counting. # For Timers 0 and 1, the RIU bits are reset to zero and the ALT bits are set to one. This results in the Timer Out pins going high. # All LTM bits reset to 0, resulting in edge-sense Interrupt Controller The processor can receive interrupts from a number of sources, both internal and external. The internal interrupt controller serves to merge these requests on a priority basis, for individual service by the CPU. Internal interrupt sources (Timers and DMA channels) can be disabled by their own control registers or by mask bits within the interrupt controller. The interrupt controller has its own control register that sets the mode of operation for the controller. mode. # # # # # All Interrupt Service bits reset to 0. All Interrupt Request bits reset to 0. All MSK (Interrupt Mask) bits set to 1 (mask). All C (Cascade) bits reset to 0 (non-Cascade). All PRM (Priority Mask) bits set to 1, implying no levels masked. # Initialized to Master Mode. 12 12 80186/80188 272430 – 6 NOTE: Pin names in parenthesis apply to 80188. (1) BHE does not exist on the 80188, this is only required for a 16-bit data bus. Figure 6. Typical 80186/80188 Computer 13 13 80186/80188 272430 – 7 NOTE: Pin names in parentheses apply to 80188. (1) BHE does not exist on the 80188, this is only required for a 16-bit data bus. Figure 7. Typical 80186/80188 Multi-Master Bus Interface 14 14 80186/80188 ABSOLUTE MAXIMUM RATINGS* NOTICE: This is a production data sheet. The specifications are subject to change without notice. Ambient Temperature under Bias ÀÀÀÀÀÀ0§ C to 70§ C Storage Temperature ÀÀÀÀÀÀÀÀÀÀ b 65§ C to a 150§ C Voltage on any Pin with Respect to GroundÀÀÀÀÀÀÀÀÀÀÀÀÀÀ b 1.0V to a 7V Power Dissipation ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ3W *WARNING: Stressing the device beyond the ‘‘Absolute Maximum Ratings’’ may cause permanent damage. These are stress ratings only. Operation beyond the ‘‘Operating Conditions’’ is not recommended and extended exposure beyond the ‘‘Operating Conditions’’ may affect device reliability. D.C. CHARACTERISTICS (TA e 0§ C to a 70§ C, VCC e 5V g 10%) Applicable to 8 MHz and 10 MHz devices. Symbol Parameter Min Max Units b 0.5 a 0.8 V Input High Voltage (All except X1 and (RES) 2.0 VCC a 0.5 V VIH1 Input High Voltage (RES) 3.0 VCC a 0.5 V VOL Output Low Voltage 0.45 V Ia e 2.5 mA for S0 –S2 Ia e 2.0 mA for all other Outputs VOH Output High Voltage V Ioa e b 400 mA ICC Power Supply Current VIL Input Low Voltage VIH 2.4 Test Conditions 600* mA TA e b 40§ C 550 mA T A e 0§ C 415 mA TA e a 70§ C Input Leakage Current g 10 mA 0V k VIN k VCC ILO Output Leakage Current g 10 mA 0.45V k VOUT k VCC VCLO Clock Output Low 0.6 V Ia e 4.0 mA VCHO Clock Output High V Ioa e b 200 mA VCLI Clock Input Low Voltage b 0.5 0.6 V VCHI Clock Input High Voltage 3.9 VCC a 1.0 V CIN Input Capacitance 10 pF CIO I/O Capacitance 20 pF ILI 4.0 *For extended temperature parts only. 15 15 80186/80188 A.C. CHARACTERISTICS (TA e 0§ C to a 70§ C, VCC e 5V g 10%) Timing Requirements All Timings Measured At 1.5V Unless Otherwise Noted. Symbol Parameter 8 MHz Min 10 MHz Max 20 Min Units Max TDVCL Data in Setup (A/D) 15 ns TCLDX Data in Hold (A/D) TARYHCH Asynchronous Ready (ARDY) Active Setup Time(1) 10 8 ns 20 15 ns TARYLCL ARDY Inactive Setup Time 35 25 ns TCLARX ARDY Hold Time 15 15 ns TARYCHL Asynchronous Ready Inactive Hold Time 15 15 ns TSRYCL Synchronous Ready (SRDY) Transition Setup Time(2) 20 20 ns TCLSRY SRDY Transition Hold Time(2) 15 15 ns THVCL HOLD Setup(1) 25 20 ns TINVCH INTR, NMI, TEST, TIM IN, Setup(1) 25 25 ns TINVCL DRQ0, DRQ1, Setup(1) 25 20 ns Test Conditions Master Interface Timing Responses TCLAV Address Valid Delay 5 55 5 44 ns TCLAX Address Hold TCLAZ Address Float Delay 35 TCLAX 30 ns TCHCZ Command Lines Float Delay TCHCV Command Lines Valid Delay (after Float) 45 40 ns 55 45 ns TLHLL ALE Width TCHLH ALE Active Delay 35 30 ns TCHLL ALE Inactive Delay 35 30 ns 10 TCLAX 10 TCLCL b 35 ns TCLCL b 30 TCHCL b 25 ns TLLAX Address Hold from ALE Inactive TCLDV Data Valid Delay TCLDOX Data Hold Time TWHDX Data Hold after WR TCVCTV Control Active Delay 1 5 50 5 40 ns TCHCTV Control Active Delay 2 10 55 10 44 ns TCVCTX Control Inactive Delay 5 55 5 44 ns TCVDEX DEN Inactive Delay (Non-Write Cycle) 10 70 10 56 ns 10 TCHCL b 20 44 10 CL e 20 pF–200 pF all Outputs (Except TCLTMV) @ 8 MHz and 10 MHz ns 40 ns 10 10 ns TCLCL b 40 TCLCL b 34 ns 1. To guarantee recognition at next clock. 2. To guarantee proper operation. 16 16 80186/80188 A.C. CHARACTERISTICS (TA e 0§ C to a 70§ C, VCC e 5V g 10%) (Continued) Master Interface Timing Responses (Continued) Symbol Parameter 8 MHz Min 10 MHz Units Max Min Max 10 56 10 44 TAZRL Address Float to RD Active 0 TCLRL RD Active Delay 10 70 0 TCLRH RD Inactive Delay 10 55 TRHAV RD Inactive to Address Active TCLHAV HLDA Valid Delay TRLRH RD Width 2TCLCL b 50 2TCLCL b 46 ns TWLWH WR Width 2TCLCL b 40 2TCLCL b 34 ns TAVLL Address Valid to ALE Low TCLCH b 25 TCLCH b 19 ns TCHSV Status Active Delay 10 55 10 45 ns TCLSH Status Inactive Delay 10 65 10 50 ns TCLTMV Timer Output Delay 60 48 ns TCLRO Reset Delay 60 48 ns TCHQSV Queue Status Delay 35 28 ns TCHDX Status Hold Time 10 10 ns TAVCH Address Valid to Clock High 10 10 ns TCLLV LOCK Valid/Invalid Delay 5 TCLCL b 40 5 ns TCLCL b 40 50 65 5 5 Test Conditions ns ns ns 40 ns 60 ns 45 ns 100 pF max @ 8 & 10 MHz Chip-Select Timing Responses TCLCSV Chip-Select Active Delay TCXCSX Chip-Select Hold from Command Inactive 35 66 TCHCSX Chip-Select Inactive Delay 5 35 5 32 62.5 250 50 250 ns 10 ns 3.5 to 1.0V 10 35 ns ns CLKIN Requirements TCKIN CLKIN Period TCKHL CLKIN Fall Time TCKLH CLKIN Rise Time ns 1.0 to 3.5V TCLCK CLKIN Low Time 25 20 ns 1.5V TCHCK CLKIN High Time 25 20 ns 1.5V 10 10 CLKOUT Timing (200 pF load) TCICO CLKIN to CLKOUT Skew TCLCL CLKOUT Period 50 125 500 100 25 ns 500 ns TCLCH CLKOUT Low Time (/2 TCLCL b 7.5 (/2 TCLCL b 6.0 TCHCL CLKOUT High Time (/2 TCLCL b 7.5 ns 1.5V (/2 TCLCL b 6.0 ns 1.5V TCH1CH2 CLKOUT Rise Time 15 12 ns 1.0 to 3.5V TCL2CL1 CLKOUT Fall Time 15 12 ns 3.5 to 1.0V 17 17 80186/80188 EXPLANATION OF THE AC SYMBOLS Each timing symbol has from 5 to 7 characters. The first character is always a ‘‘T’’ (stands for time). The other characters, depending on their positions, stand for the name of a signal or the logical status of that signal. The following is a list of all the characters and what they stand for. A: ARY: C: CK: CS: CT: D: DE: H: Address Asynchronous Ready Input Clock Output Clock Input Chip Select Control (DT/R, DEN, . . . ) Data Input DEN Logic Level High IN: L: O: QS: R: S: SRY: V: W: X: Z: Input (DRQ0, TIM0, . . . ) Logic Level Low or ALE Output Queue Status (QS1, QS2) RD signal, RESET signal Status (S0, S1, S2) Synchronous Ready Input Valid WR Signal No Longer a Valid Logic Level Float Examples: TCLAV Ð Time from Clock low to Address valid TCHLH Ð Time from Clock high to ALE high TCLCSV Ð Time from Clock low to Chip Select valid 18 18 80186/80188 WAVEFORMS MAJOR CYCLE TIMING 272430 – 8 NOTE: Pin names in parentheses apply to the 80188. 19 19 80186/80188 WAVEFORMS (Continued) MAJOR CYCLE TIMING (Continued) NOTES: 1. INTA occurs one clock later in slave mode. 2. Status inactive just prior to T4. 3. If latched A1 and A2 are selected instead of PCS5 and PCS6, only TCLCSV is applicable. 4. Pin names in parentheses apply to the 80188. 272430 – 9 20 20 80186/80188 WAVEFORMS (Continued) 272430 – 10 272430 – 11 272430 – 12 21 21 80186/80188 WAVEFORMS (Continued) 272430 – 13 272430 – 14 22 22 80186/80188 WAVEFORMS (Continued) READY TIMING 272430 – 15 23 23 80186/80188 272430 – 16 NOTE: Pin names in parentheses apply to the 80188. 24 24 80186/80188 WAVEFORMS (Continued) 272430 – 17 EXPRESS The Intel EXPRESS system offers enhancements to the operational specifications of the microprocessor. EXPRESS products are designed to meet the needs of those applications whose operating requirements exceed commercial standards. Package types and EXPRESS versions are identified by a one- or two-letter prefix to the part number. The prefixes are listed in Table 2. All A.C. and D.C. specifications not mentioned in this section are the same for both commercial and EXPRESS parts. Table 2. Prefix Identification Package Type Temperature Range Burn-In A PGA Commercial No N PLCC Commercial No The EXPRESS program includes the commercial standard temperature range with burn-in and an extended temperature range without burn-in. Prefix With the commercial standard temperature range operational characteristics are guaranteed over the temperature range of 0§ C to a 70§ C. With the extended temperature range option, operational characteristics are guaranteed over the range of b 40§ C to a 85§ C. The optional burn-in is dynamic, for a minimum time of 160 hours at a 125§ C with VCC e 5.5V g 0.25V, following guidelines in MIL-STD-883, Method 1015. R LCC Commercial No TA PGA Extended No QA PGA Commercial Yes QR LCC Commercial Yes NOTE: Not all package/temperature range/speed combinations are available. 25 25 80186/80188 EXECUTION TIMINGS A determination of program execution timing must consider the bus cycles necessary to prefetch instructions as well as the number of execution unit cycles necessary to execute instructions. The following instruction timings represent the minimum execution time in clock cycles for each instruction. The timings given are based on the following assumptions: # The opcode, along with any data or displacement required for execution of a particular instruction, has been prefetched and resides in the queue at the time it is needed. # No wait states or bus HOLDS occur. # All word-data is located on even-address boundaries. All instructions which involve memory accesses can also require one or two additional clocks above the minimum timings shown due to the asynchronous handshake between the bus interface unit (BIU) and execution unit. All jumps and calls include the time required to fetch the opcode of the next instruction at the destination address. The 80186 has sufficient bus performance to ensure that an adequate number of prefetched bytes will reside in the queue (6 bytes) most of the time. Therefore, actual program execution time will not be substantially greater than that derived from adding the instruction timings shown. The 80188 is noticeably limited in its performance relative to the execution unit. A sufficient number of prefetched bytes may not reside in the prefetch queue (4 bytes) much of the time. Therefore, actual program execution time may be substantially greater than that derived from adding the instruction timings shown. 26 26 80186/80188 INSTRUCTION SET SUMMARY Function Format 80186 Clock Cycles 80188 Clock Cycles 2/12 2/12* Comments DATA TRANSFER MOV e Move: Register to Register/Memory 1000100w mod reg r/m Register/memory to register 1000101w mod reg r/m Immediate to register/memory 1100011w mod 000 r/m data Immediate to register 1 0 1 1 w reg data Memory to accumulator 1010000w Accumulator to memory Register/memory to segment register Segment register to register/memory 2/9 2/9* 12/13 12/13 8/16-bit data if w e 1 3/4 3/4 8/16-bit addr-low addr-high 8 8* 1010001w addr-low addr-high 9 9* 10001110 mod 0 reg r/m 2/9 2/13 10001100 mod 0 reg r/m 2/11 2/15 Memory 11111111 mod 1 1 0 r/m 16 20 Register 0 1 0 1 0 reg 10 14 Segment register 0 0 0 reg 1 1 0 9 13 Immediate 011010s0 10 14 PUSHA e Push All 01100000 36 68 20 24 10 14 8 12 51 83 4/17 4/17* 3 3 10 10* 8 8* data if w e 1 PUSH e Push: data data if s e 0 POP e Pop: Memory 10001111 Register 0 1 0 1 1 reg Segment register 0 0 0 reg 1 1 1 POPA e Pop All 01100001 mod 0 0 0 r/m (reg i 01) XCHG e Exchange: Register/memory with register 1000011w Register with accumulator 1 0 0 1 0 reg mod reg r/m IN e Input from: Fixed port 1110010w Variable port 1110110w port OUT e Output to: Fixed port 1110011w Variable port 1110111w XLAT e Translate byte to AL 11010111 LEA e Load EA to register 10001101 port mod reg r/m 9 9* 7 7* 11 15 6 6 18 26 18 26 LDS e Load pointer to DS 11000101 mod reg r/m (mod i 11) LES e Load pointer to ES 11000100 mod reg r/m (mod i 11) LAHF e Load AH with flags 10011111 2 2 SAHF e Store AH into flags 10011110 3 3 PUSHF e Push flags 10011100 9 13 POPF e Pop flags 10011101 8 12 Shaded areas indicate instructions not available in 8086, 8088 microsystems. NOTE: *Clock cycles shown for byte transfers, for word operations, add 4 clock cycles for each memory transfer. 27 27 80186/80188 INSTRUCTION SET SUMMARY (Continued) Function Format 80186 Clock Cycles 80188 Clock Cycles Comments DATA TRANSFER (Continued) SEGMENT e Segment Override: CS 00101110 2 2 SS 00110110 2 2 DS 00111110 2 2 ES 00100110 2 2 3/10 3/10* 4/16 4/16* 3/4 3/4 3/10 3/10* 4/16 4/16* 3/4 3/4 3/15 3/15* 3 3 3/10 3/10* 4/16 4/16* 3/4 3/4 3/10 3/10* 4/16 4/16* 3/4 3/4 3/15 3/15* 3 3 ARITHMETIC ADD e Add: Reg/memory with register to either 000000dw mod reg r/m Immediate to register/memory 100000sw mod 0 0 0 r/m data Immediate to accumulator 0000010w data data if w e 1 data if s w e 01 8/16-bit ADC e Add with carry: Reg/memory with register to either 000100dw mod reg r/m Immediate to register/memory 100000sw mod 0 1 0 r/m data Immediate to accumulator 0001010w data data if w e 1 Register/memory 1111111w mod 0 0 0 r/m Register 0 1 0 0 0 reg data if s w e 01 8/16-bit INC e Increment: SUB e Subtract: Reg/memory and register to either 001010dw mod reg r/m Immediate from register/memory 100000sw mod 1 0 1 r/m data Immediate from accumulator 0010110w data data if w e 1 data if s w e 01 8/16-bit SBB e Subtract with borrow: Reg/memory and register to either 000110dw mod reg r/m Immediate from register/memory 100000sw mod 0 1 1 r/m data Immediate from accumulator 0001110w data data if w e 1 Register/memory 1111111w mod 0 0 1 r/m Register 0 1 0 0 1 reg data if s w e 01 8/16-bit DEC e Decrement CMP e Compare: Register/memory with register 0011101w mod reg r/m 3/10 3/10* Register with register/memory 0011100w mod reg r/m 3/10 3/10* Immediate with register/memory 100000sw mod 1 1 1 r/m data 3/10 3/10* Immediate with accumulator 0011110w data data if w e 1 NEG e Change sign register/memory 1111011w mod 0 1 1 r/m AAA e ASCII adjust for add DAA e Decimal adjust for add data if s w e 01 3/4 3/4 3/10 3/10* 00110111 8 8 00100111 4 4 AAS e ASCII adjust for subtract 00111111 7 7 DAS e Decimal adjust for subtract 00101111 4 4 MUL e Multiply (unsigned): 1111011w 26–28 35–37 32–34 41–43 26–28 35–37 32–34 41–43* 8/16-bit mod 100 r/m Register-Byte Register-Word Memory-Byte Memory-Word Shaded areas indicate instructions not available in 8086, 8088 microsystems. NOTE: *Clock cycles shown for byte transfers, for word operations, add 4 clock cycles for each memory transfer. 28 28 80186/80188 INSTRUCTION SET SUMMARY (Continued) Function Format 80186 Clock Cycles 80188 Clock Cycles 25–28 34–37 31–34 40–43 25–28 34–37 31–34 40–43* 22–25/ 29–32 22–25/ 29–32 29 38 35 44 29 38 35 44* 44–52 53–61 50–58 59–67 44–52 53–61 50–58 59–67* Comments ARITHMETIC (Continued) IMUL e Integer multiply (signed): 1111011w mod 1 0 1 r/m Register-Byte Register-Word Memory-Byte Memory-Word IMUL e Integer Immediate multiply (signed) 011010s1 mod reg r/m DIV e Divide (unsigned): 1111011w mod 1 1 0 r/m data data if s e 0 Register-Byte Register-Word Memory-Byte Memory-Word IDIV e Integer divide (signed): 1111011w mod 1 1 1 r/m Register-Byte Register-Word Memory-Byte Memory-Word AAM e ASCII adjust for multiply 11010100 00001010 19 19 AAD e ASCII adjust for divide 11010101 00001010 15 15 CBW e Convert byte to word 10011000 2 2 CWD e Convert word to double word 10011001 4 4 2/15 2/15 LOGIC Shift/Rotate Instructions: Register/Memory by 1 1101000w mod TTT r/m Register/Memory by CL 1101001w mod TTT r/m Register/Memory by Count 1100000w mod TTT r/m 5 a n/17 a n 5 a n/17 a n count 5 a n/17 a n 5 a n/17 a n TTT Instruction 000 ROL 001 ROR 010 RCL 011 RCR 1 0 0 SHL/SAL 101 SHR 111 SAR AND e And: Reg/memory and register to either 001000dw mod reg r/m Immediate to register/memory 1000000w mod 1 0 0 r/m data Immediate to accumulator 0010010w data data if w e 1 data if w e 1 3/10 3/10* 4/16 4/16* 3/4 3/4 3/10 3/10* 4/10 4/10* 3/4 3/4 3/10 3/10* 4/16 4/16* 3/4 3/4 8/16-bit TEST e And function to flags, no result: Register/memory and register 1000010w mod reg r/m Immediate data and register/memory 1111011w mod 0 0 0 r/m data Immediate data and accumulator 1010100w data data if w e 1 data if w e 1 8/16-bit OR e Or: Reg/memory and register to either 000010dw mod reg r/m Immediate to register/memory 1000000w mod 0 0 1 r/m data Immediate to accumulator 0000110w data data if w e 1 data if w e 1 8/16-bit Shaded areas indicate instructions not available in 8086, 8088 microsystems. NOTE: *Clock cycles shown for byte transfers, for word operations, add 4 clock cycles for each memory transfer. 29 29 80186/80188 INSTRUCTION SET SUMMARY (Continued) Function Format 80186 Clock Cycles 80188 Clock Cycles 3/10 3/10* 4/16 4/16* Comments LOGIC (Continued) XOR e Exclusive or: Reg/memory and register to either 001100dw mod reg r/m data if w e 1 Immediate to register/memory 1000000w mod 1 1 0 r/m data Immediate to accumulator 0011010w data data if w e 1 NOT e Invert register/memory 1111011w mod 0 1 0 r/m 3/4 3/4 3/10 3/10* 8/16-bit STRING MANIPULATION MOVS e Move byte/word 1010010w 14 14* CMPS e Compare byte/word 1010011w 22 22* SCAS e Scan byte/word 1010111w 15 15* LODS e Load byte/wd to AL/AX 1010110w 12 12* STOS e Store byte/wd from AL/AX 1010101w 10 10* INS e Input byte/wd from DX port 0110110w 14 14 OUTS e Output byte/wd to DX port 0110111w 14 14 Repeated by count in CX (REP/REPE/REPZ/REPNE/REPNZ) MOVS e Move string 11110010 1010010w 8 a 8n 8 a 8n* CMPS e Compare string 1111001z 1010011w 5 a 22n 5 a 22n* SCAS e Scan string 1111001z 1010111w 5 a 15n 5 a 15n* 1010110w 6 a 11n 6 a 11n* LODS e Load string 11110010 STOS e Store string 11110010 1010101w 6 a 9n 6 a 9n* INS e Input string 11110010 0110110w 8 a 8n 8 a 8n* OUTS e Output string 11110010 0110111w 8 a 8n 8 a 8n* CONTROL TRANSFER CALL e Call: Direct within segment 11101000 disp-low Register/memory indirect within segment 11111111 mod 0 1 0 r/m Direct intersegment 10011010 disp-high segment offset 15 19 13/19 17/27 23 31 38 54 14 14 segment selector Indirect intersegment 11111111 mod 0 1 1 r/m Short/long 11101011 disp-low Direct within segment 11101001 disp-low Register/memory indirect within segment 11111111 mod 1 0 0 r/m Direct intersegment 11101010 (mod i 11) JMP e Unconditional jump: disp-high segment offset 14 14 11/17 11/21 14 14 26 34 segment selector Indirect intersegment 11111111 mod 1 0 1 r/m (mod i 11) Shaded areas indicate instructions not available in 8086, 8088 microsystems. NOTE: *Clock cycles shown for byte transfers, for word operations, add 4 clock cycles for each memory transfer. 30 30 80186/80188 INSTRUCTION SET SUMMARY (Continued) Function Format 80186 Clock Cycles 80188 Clock Cycles 16 20 Comments CONTROL TRANSFER (Continued) RET e Return from CALL: Within segment 11000011 Within seg adding immed to SP 11000010 Intersegment 11001011 Intersegment adding immediate to SP 11001010 data-low JE/JZ e Jump on equal/zero 01110100 disp data-low data-high data-high 18 22 22 30 25 33 4/13 4/13 JL/JNGE e Jump on less/not greater or equal 01111100 disp 4/13 4/13 JLE/JNG e Jump on less or equal/not greater 01111110 disp 4/13 4/13 JB/JNAE e Jump on below/not above or equal 01110010 disp 4/13 4/13 JBE/JNA e Jump on below or equal/not above 01110110 disp 4/13 4/13 JP/JPE e Jump on parity/parity even 01111010 disp 4/13 4/13 JO e Jump on overflow 01110 000 disp 4/13 4/13 JS e Jump on sign 01111000 disp 4/13 4/13 JNE/JNZ e Jump on not equal/not zero 01110101 disp 4/13 4/13 JNL/JGE e Jump on not less/greater or equal 01111101 disp 4/13 4/13 JNLE/JG e Jump on not less or equal/greater 01111111 disp 4/13 4/13 JNB/JAE e Jump on not below/above or equal 01110011 disp 4/13 4/13 JNBE/JA e Jump on not below or equal/above 01110111 disp 4/13 4/13 JNP/JPO e Jump on not par/par odd 01111011 disp 4/13 4/13 JNO e Jump on not overflow 01110001 disp 4/13 4/13 JNS e Jump on not sign 01111001 disp 4/13 4/13 JCXZ e Jump on CX zero 11100011 disp 5/15 5/15 LOOP e Loop CX times 11100010 disp 6/16 6/16 LOOPZ/LOOPE e Loop while zero/equal 11100001 disp 6/16 6/16 LOOPNZ/LOOPNE e Loop while not zero/equal 11100000 disp 6/16 6/16 ENTER e Enter Procedure 11001000 data-low 15 25 22 a 16(n b 1) 19 29 26 a 20(n b 1) 8 8 data-high Le0 Le1 Ll1 LEAVE e Leave Procedure 11001001 JMP not taken/JMP taken LOOP not taken/LOOP taken L INT e Interrupt: Type specified 11001101 47 47 Type 3 11001100 type 45 45 if INT. taken/ INTO e Interrupt on overflow 11001110 48/4 48/4 if INT. not taken IRET e Interrupt return 11001111 28 28 BOUND e Detect value out of range 01100010 33–35 33–35 mod reg r/m Shaded areas indicate instructions not available in 8086, 8088 microsystems. NOTE: *Clock cycles shown for byte transfers, for word operations, add 4 clock cycles for each memory transfer. 31 31 80186/80188 INSTRUCTION SET SUMMARY (Continued) Function Format 80186 Clock Cycles 80188 Clock Cycles Comments PROCESSOR CONTROL CLC e Clear carry 11111000 2 2 CMC e Complement carry 11110101 2 2 STC e Set carry 11111001 2 2 CLD e Clear direction 11111100 2 2 STD e Set direction 11111101 2 2 CLI e Clear interrupt 11111010 2 2 STI e Set interrupt 11111011 2 2 HLT e Halt 11110100 2 2 WAIT e Wait 10011011 6 6 LOCK e Bus lock prefix 11110000 2 3 6 6 3 3 ESC e Processor Extension Escape 11011TTT mod LLL r/m if TEST e 0 (TTT LLL are opcode to processor extension) NOP e No Operation 10010000 Shaded areas indicate instructions not available in 8086, 8088 microsystems. NOTE: *Clock cycles shown for byte transfers, for word operations, add 4 clock cycles for each memory transfer. reg is assigned according to the following: FOOTNOTES The Effective Address (EA) of the memory operand is computed according to the mod and r/m fields: if mod e 11 then r/m is treated as REG field if mod e 00 then DISP e 0*, disp-low and disp-high are absent if mod e 01 then DISP e disp-low sign-extended to 16-bits, disp-high is absent if mod e 10 then DISP e disp-high: disp-low if r/m e 000 then EA e (BX) a (SI) a DISP if r/m e 001 then EA e (BX) a (DI) a DISP if r/m e 010 then EA e (BP) a (SI) a DISP if r/m e 011 then EA e (BP) a (DI) a DISP if r/m e 100 then EA e (SI) a DISP if r/m e 101 then EA e (DI) a DISP if r/m e 110 then EA e (BP) a DISP* if r/m e 111 then EA e (BX) a DISP DISP follows 2nd byte of instruction (before data if required) *except if mod e 00 and r/m e 110 then EA e disp-high: disp-low. EA calculation time is 4 clock cycles for all modes, and is included in the execution times given whenever appropriate. Segment Override Prefix 0 0 1 reg 1 1 0 reg 00 01 10 11 Segment Register ES CS SS DS REG is assigned according to the following table: 16-Bit (w e 1) 000 AX 001 CX 010 DX 011 BX 100 SP 101 BP 110 SI 111 DI 8-Bit (w e 0) 000 AL 001 CL 010 DL 011 BL 100 AH 101 CH 110 DH 111 BH The physical addresses of all operands addressed by the BP register are computed using the SS segment register. The physical addresses of the destination operands of the string primitive operations (those addressed by the DI register) are computed using the ES segment, which may not be overridden. 32 32 80186/80188 REVISION HISTORY This data sheet replaces the following data sheets: 210706-011 80188 210451-011 80186 33 33