answersLogoWhite

0


Best Answer

Memory segmentation is an attempt to address more memory than the processor architecture would normally allow.

In the case of the 8086/8088, a 16 bit processor, you would normally expect addressibility of 64 kb, because that is what the instruction set is capable of developing as an effective address, either in the case of a direct address, an indirect address, or an indexed address, since all of its registers are 16 bits in size.

What Intel did was provide four more registers called segment registers which would provide the base address of an address in physical memory to which the processor generated effective address would be added. The segment register is still 16 bits in size, but it is left shifted by four before being added to the effective address. This creates a physical address that is 20 bits in size, for a total address range of 1 mb.

Note that you are still constrained to a segment size of 64 kb, in that you must stay within 64 kb unless you intend to change the value of one of the segment registers. This hampers the ability to access any arbitrary location in memory, effectively making it a two step operation - load the segment register - then access the offset address.

In the 8086/8088 there are four segment registers; Code Segment (CS), Data Segment (DS), Stack Segment (SS), and Extra Segment (ES). All opcode access is from CS. Default data access is from DS, unless a segment prefix is applied. All stack operations are from SS. Certain repeated string operations take place between DS and ES.

Because of the segmented architecture, the concept of near and far grew up with the original PC and DOS and Windows. Basically, a near address was a 16 bit address that assumed the current segment, while a far address was a 32 bit address that contained both a segment and an offset. Note that the concept of a flat 32 bit address did not come into full play until true 32 bit operating systems hit the street, and that did not occur until the introduction of the 80386.

User Avatar

Wiki User

βˆ™ 13y ago
This answer is:
User Avatar
More answers
User Avatar

Wiki User

βˆ™ 12y ago

Even though the 8086 has a 1Mbyte address space, not all this memory is active at one

time. Actually, the 1Mbytes of memory are partitioned into 64Kbyte (65,536) segments.

Each segment is assigned a Base Address that identifies its starting point (identify its

lowest address byte-storage location).

Only four of these 64Kbyte segments are active a time: the code segment, stack segment,

data segment, and extra segment. The addresses of these four segments are held in four

segment registers: CS (code segment), SS (stack segment), DS (data segment), and

ES(extra segment). These registers contain a 16-bit base address that points to the lowest

addressed byte of the segment (see Fig 5).

Note that the segment registers are user accessible. This means that the programmer can

change their contents through software.

There is one restriction on the value assigned to a segment as base address: it must

reside on a 16-byte address boundary. This is because the memory address is 20 bits

while the segment register width is 16 bits. Four bits (0000) must be added to the

segment register content to evaluate the segment starting address.

partitioned into 64KB segments.

This answer is:
User Avatar

User Avatar

Wiki User

βˆ™ 14y ago

The 8085 does not have memory segmentation.

This answer is:
User Avatar

User Avatar

Anonymous

Lvl 1
βˆ™ 4y ago

Four windows of 64K Code window Data window Stack window The segmented memory model allows multiple functional windows into the main memory, a code window, a data window etc. The processor sees code from the code window and data from the data window. The size of one window is restricted to 64K. 8085 software fits in just one such window. It sees code, data, and stack from this one window, so downward compatibility is attained

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: Why was segmentation originally introduced in 8088 architecture?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Related questions

8088 and 8086 were introduced by?

The 8086/8088 family of microprocessors was introduced by Intel.


8086 is risc or cisc based architecture?

The 8086/8088 is a CISC based architecture.


What was DOS first introduced with?

First used with IBM 8088 CPU as MS-DOS 1.0 in 1982


What are the features of 8088?

Segmentation concept is first introduced in 8086 microprocessor


How many bits in 8088?

The Intel 8088 microprocessor was a variant of the Intel 8086 and was introduced on July 1, 1979. It had an 8-bit external data bus instead of the 16-bit bus of the 8086. The 16-bit registers and the one megabyte address range were unchanged, however. The original IBM PC was based on the 8088.


How much ram could the 8088-processor access?

8088 processor accessed 1MB


What was the first IBM PC processor?

The Intel 8088.


What is the difference between the 8086 and the 8087?

The 8086 was a 16-bit microprocessor chip. It gave its name to the x86 architecture. It was the main CPU of the computer. The 8087 was the first math coprocessor for 16 bit processors. It was the first of the x87 architecture chips. it couldn't act as the main CPU in a computer, it was dedicated to doing floating point mathematical computations.


What is memory interfacing in 8086 microprocessor?

The 8086/8088 is a 16 bit computer running on a 20 bit address bus. Processes use a segmented memory architecture to access one of four 64kb memory segments from a physical space of 1mb.


Which one launch first 8088 or 8086?

1978 - 8086 1979 - 8088 First IBM PC used 8088. I think later low end IBM PC's used 8086.


Explain the real mode in 8086?

Real mode is a term that was introduced for the 80286 and higher processors. It represents the default (power on) mode of an 80286 or higher processor, as opposed to one of the various protected modes. Real mode does not apply specifically to the 8086/8088. In the 80286 and above, real mode operates very much like the 8086/8088.


Why in memory segmentation of 8086 it use 64Kb instead of 1Mb?

Each segment in the 8086/8088 is 64KB because that is how Intel designed the microprocessor. The offset address is 16 bits, making the allowable range 64KB. See the related questions link for a further discussion of segmented architecture.