Professional Documents
Culture Documents
AH AL
BH BL
CH CL Arithmetic & Logic Unit
DH DL
SP
BP
SI Operands
DI Flags
The Bus Interface Unit (BIU):
The BIU sends out addresses,fetches
instructions from the memory, reads data
from ports & memory and writes data to ports
& memory. Its various functional parts are :
The Queue
8FFFF H
Top of extra segment
80000H 64K
Extra segment base ES= 8000 H
64K
Code segment base CS= 448A H
448A0 H
64K Bottom of
30000 H Data segment
DS= 3000 H
In the 8086 microprocessor , the total memory is
divided into segments . Each segment is of 64k .
However the segments can be overlapping , thereby
giving an impression that they can actually of variable
size , with maximum as 64k .
Each of these segments can
be used for a specific function . For example :
Code segment for is used for storing the
instructions. Stack segment is used as STACK.
Data and extra segments are used for storing the
data bytes.
In the assembly language program , there
can be more than one data/code/stack segments
defined . However only one segment of each type
can be active at any time.
The starting address of the segments which are
currently active , or in use , at any time is stored in
the respective segment register . As the segment
register is of only 16-bits, while the address width is
of 20-bits , therefore to get the complete starting
address of the segment , the segment register is
multiplied by 16 or (10)H . The physical address is
calculated as follows :
01010 H SP = 10 H
01000 H Base of stack segment
The value of the SP (stack pointer) = 0010 H
The value of the(Stack Segment register)SS =0100 H
Physical Address of the top of the stack is =
= 0100 H * 10 H + 0010 H
= 01010 H
Implied zero(obtained on
SS 0 1 0 0 0
multiplication by 16)
SP + 0 0 1 0
P.A. 0 1 0 1 0