8085 learn
8085 learn
TEMPORARY REGISTERS 6
CONTROL
LOGIC B
U
S
EU
ALU CONTROL INSTRUCTION QUEUE
SYSTEM Q BUS
1 2 3 4 5 6
8 BIT
FLAGS
BUS INTERFACE UNIT ( BIU)
EXECUTION UNIT ( EU )
Fig:
M. Krishna Kumar MM/M1/LU3/V1/2004 4
AD4
30 RQ / GT
___1
( HLDA)
12 _______
29 ____
____
AD3 LOCK (WR)
13
28 ___
___ S2 (M / IO )
AD2
14 27 S1
___
(DT
_____
/ R)
AD1 15 26 S0 (DEN)
AD0 25 ________ QS0 (ALE)
16
NMI 24 QS1 (INTA)
17
______
INTR 18 23
TEST
CLK 19 22
READY
GND 20 21
RESET
VCC GND
INTR
_____
TEST INTERFACE
D0 - D15
MEMORY M / IO __
I/O DT / R
HOLD DMA ____
CONTROLS RD
HLDA INTERFACE _____
WR
VCC _____
DEN
MODE
____
SELECT READY
MN / MX
CLK
M. Krishna Kumar MM/M1/LU3/V1/2004 6
Output,
S2 – S0 Bus Cycle Status 3- State
QS1, QS0 Instruction Queue Status Output
INTR
A0-A15,A16/S3 – A19/S6
INTA
Interrupt Address / data bus
interface
TEST
D0 – D15
NMI
8086
ALE
RESET MPU
BHE / S7
M / IO Memory
HOLD I/O controls
DMA DT / R
interface
HLDA RD
WR
Vcc
DEN
Mode select
READY
MN / MX
CLK clock
S4 S3 Segment Register
0 0 Extra
0 1 Stack
1 0 Code / none
1 1 Data
INIT
Multi Bus
S0 BUSY
S1 CBRQ
S2 8289 Bus BPRO
LOCK arbiter BPRN
CRQLCK
CLK RESB BREQ
Vcc GND SYSB/RESB
ANYREQ CLK AEN IOB BCLK
0 0 1 I / O read
1 0 I/O write
0
1 0 1 Memory read
1 1 0 Memory write
ALE
RD
DEN
DT / R
Clk
ALE
BHE S7 – S3
ADD / STATUS A19 – A16
WR
DEN
DT / R
HOLD
HLDA
• They also serve the same purpose, but are activated one
clock cycle earlier than the IOWC and MWTC signals
respectively.
• The maximum mode system timing diagrams are divided
in two portions as read (input) and write (output) timing
diagrams.
• The address/data and address/status timings are similar to
the minimum mode.
• ALE is asserted in T1, just like minimum mode. The only
difference lies in the status signal used and the available
control and advanced command signals.
8086
CLK
AD6-AD15 A/D Address bus
A16-A19 Latches
Add bus
DT/R
BHE A0
DIR
Data CS0H CS0L RD CS WR RD
buffer WR
DEN G Memory Peripherals
Data bus
Clk
AL
E
S2 – S0 Active Inactive Active
MRDC
DT / R
DEN
Clk
ALE
ADD/STATUS BHE S7 – S3
DT / R high
DEN
Clk
RQ / GT
Addressing Modes
• Indexed :- 8-bit or 16-bit instruction operand is added to
the contents of an index register (SI or DI), the resulting
value is a pointer to location where data resides.
• Based Indexed :- the contents of a base register (BX or
BP) is added to the contents of an index register (SI or DI),
the resulting value is a pointer to location where data
resides.
• Based Indexed with displacement :- 8-bit or 16-bit
instruction operand is added to the contents of a base
register (BX or BP) and index register (SI or DI), the
resulting value is a pointer to location where data resides.
Memory (cont..)
• Program, data and stack memories occupy the same
memory space. As the most of the processor instructions
use 16-bit pointers the processor can effectively address
only 64 KB of memory.
• To access memory outside of 64 KB the CPU uses special
segment registers to specify where the code, stack and data
64 KB segments are positioned within 1 MB of memory
(see the "Registers" section below).
• 16-bit pointers and data are stored as:
address: low-order byte
address+1: high-order byte
Memory (cont..)
• 32-bit addresses are stored in "segment: offset" format as:
address: low-order byte of segment
address+1: high-order byte of segment
address+2: low-order byte of offset
address+3: high-order byte of offset
• Physical memory address pointed by segment: offset pair
is calculated as:
• address = (<segment> * 16) + <offset>
Memory (cont..)
• Program memory - program can be located anywhere in
memory. Jump and call instructions can be used for short
jumps within currently selected 64 KB code segment, as
well as for far jumps anywhere within 1 MB of memory.
• All conditional jump instructions can be used to jump
within approximately +127 to -127 bytes from current
instruction.
• Data memory - the processor can access data in any one
out of 4 available segments, which limits the size of
accessible memory to 256 KB (if all four segments point to
different 64 KB blocks).
Memory (cont..)
• Accessing data from the Data, Code, Stack or Extra
segments can be usually done by prefixing instructions
with the DS:, CS:, SS: or ES: (some registers and
instructions by default may use the ES or SS segments
instead of DS segment).
• Word data can be located at odd or even byte boundaries.
The processor uses two memory accesses to read 16-bit
word located at odd byte boundaries. Reading word data
from even byte boundaries requires only one memory
access.
Memory
• Stack memory can be placed anywhere in memory. The
stack can be located at odd memory addresses, but it is not
recommended for performance reasons (see "Data
Memory" above).
Reserved locations:
• 0000h - 03FFh are reserved for interrupt vectors. Each
interrupt vector is a 32-bit pointer in format segment:
offset.
• FFFF0h - FFFFFh - after RESET the processor always
starts program execution at the FFFF0h address.
Interrupts (cont..)
The processor has the following interrupts:
• INTR is a maskable hardware interrupt. The interrupt can
be enabled/disabled using STI/CLI instructions or using
more complicated method of updating the FLAGS register
with the help of the POPF instruction.
• When an interrupt occurs, the processor stores FLAGS
register into stack, disables further interrupts, fetches from
the bus one byte representing interrupt type, and jumps to
interrupt processing routine address of which is stored in
location 4 * <interrupt type>. Interrupt processing routine
should return with the IRET instruction.
Interrupts (cont..)
• NMI is a non-maskable interrupt. Interrupt is processed in
the same way as the INTR interrupt. Interrupt type of the
NMI is 2, i.e. the address of the NMI processing routine is
stored in location 0008h. This interrupt has higher priority
then the maskable interrupt.
• Software interrupts can be caused by:
• INT instruction - breakpoint interrupt. This is a type 3
interrupt.
• INT <interrupt number> instruction - any one interrupt
from available 256 interrupts.
• INTO instruction - interrupt on overflow
Interrupts
• Single-step interrupt - generated if the TF flag is set. This
is a type 1 interrupt. When the CPU processes this
interrupt it clears TF flag before calling the interrupt
processing routine.
• Processor exceptions: Divide Error (Type 0), Unused
Opcode (type 6) and Escape opcode (type 7).
• Software interrupt processing is the same as for the
hardware interrupts.