Questions tagged [segmentation]
Segment-based memory addressing and management. Far pointers, allocation, normalisation, etc.
12 questions
9 votes
2 answers
1k views
In the 8088, what was the time/cycles penalty for switching segments?
If the penalty was 0, then you have a flat 640K. But it wasn't zero, so what was it? I get the feeling from reading about it that segment switching was something to be avoided at almost any cost.
11 votes
5 answers
6k views
How did 16-bit MS-DOS programs use a large (> 64KB) stack?
The "large" memory model of x86 allowed a program to have multiple code segments and multiple data segment, using far calls to jump across code segments, and far pointers to access data from ...
26 votes
4 answers
5k views
How can a 32-bit x86 CPU start with reset vector 0xFFFFFFF0 even though it starts in 16-bit real mode?
As far as I know, x86 CPUs start up in 16-bit 'real' mode (maybe some don't). The reset vector is 0xFFFFFFF0 (in most CPUs and in this context) In this 16-bit real mode, we can only access 16 bit ...
1 vote
1 answer
523 views
Why doesn't the Intel 8086 CPU use real memory addresses? [duplicate]
The address bus of the Intel 8086 CPU is 20-bits, and when you want to specify a memory address to read from or write to, you would form the memory address using a segment register and an offset ...
12 votes
1 answer
2k views
Which operating systems for 80286 computers allowed a process to use more than 128k data?
Out of all the operating systems for the 80286 processor I found, only two make use of the protected mode's ability to load more than one segment for text and one for data. These are MS-DOS (through ...
5 votes
5 answers
2k views
Was there ever a compiler type that was just large enough to contain a memory segment?
From this answer, Hark back to the days of segmented 16-bit architectures for example: an array might be limited to a single segment (so a 16-bit size_t would do) BUT you could have multiple ...