8086-8088 Microprocessor Memory Division
The memory of 8086 microprocessor is divided into sixteen parts or segments. In the given diagram we will take or use only four segments that are
- Code Segment
- Data Segment
- Stack Segment
- Extra Segment.
These segments store the specific data. Four segments registers are used to store or hold the initial address or base address. Each of the segment stores 64 KB. Which means that another register is required in which the memory locations address change. We know that basically there is no change in the base address so, the address on the special purpose registers are added with the base address of the segment register.
|CS 64K 4000H|
|DS 64K 3000H|
|SS 64K 2000H|
|ES 64K 1000H|
So in this manner the actual address is made the segment register are special in 8086 microprocessor. They were designed to solve the problem that is index register and pointer register are 16 bite and the memory in 8086 microprocessor is 1 MB which requires a 20 bit address, the index and pointer register are not wide enough to address directly any memory location a segment of memory is a block of 64 KB of memory addresses by special registers called segment register.
The data are pointed in a segment by the index register, pointer register, base register and instruction register. Each segment register holds or stores the 16 bit portion of the 20 bit address of a 64 KB segment of memory.
The 20 bit address is made by adding the segment register with a 0H or 0000. That is placed on the least significant end of the number in the segment register.
The code segment is that section of memory that stores the different codes used by the microprocessor. The code segment register is used for this segment to store the starting address of the code segment. Its length is 64 KB.
This is the section of memory that stores the general data used by programmers. The data are used or accessed in the data segment by an offset address of other register that hold the offset address. It is limited to 64 KB.
This segment is used to store the data which is extra for.
This segment stores the data in such a manner which is in successive form and its capacity is 64 KB.