Reputation: 321
I'm learning about the use of the mode bit, and the fact that certain CPUs like the Intel 8086 only operate in real mode. In a number of sources, I am told the following:
My question is, why do they specify that only 1 MiB of memory is addressable? Does this mean that there is unusable (but perhaps readable?) memory beyond that first MiB? How is the memory beyond the 1st MiB used? Is this the way that the CPU provides some manner of protection for processes like, say, the O.S.? Or does the CPU truly provide zero protection against accidental overwrites?
Upvotes: 2
Views: 201
Reputation: 1576
The 8086/8088 has no addressable memory beyond 1M. This is because it only has 20 address lines, and 2^20 is 1,048,576. So the range of addresses is between 0 (hex 00000) and 1,048,575 (hex FFFFF). As you correctly noted, this has nothing to do with "protected mode," since that doesn't exist on the 8086/8088 processors.
Older processors have less memory available: the 8080 has 16 address lines, for a total of 2^16, or 65,536 bytes of memory.
This is similar to saying "there is no way to express a number beyond 999 if you only have three (decimal) digits."
Upvotes: 5