Skip to main content
added 125 characters in body
Source Link
cjm
  • 27.7k
  • 12
  • 94
  • 87

The segmentation registers are a legacy from the early days of the x86 processors, when the offset wasn't large enough to address all of the memory the processor could address. The original 8086 had a 20-bit address space, but could only use a 16-bit offset. You had to use the segment registers to specify which 64KB of the 1024KB address space you wanted. The segment registers were effectively 20-bit registers where the lowest 4 bits were forced to 0. Loading a segment register set the upper 16 bits of the register. This allowed segment + offset to cover the entire 20-bit address space.

The segment registers still exist, but Linux sets them to 0 so it can pretend they don't. Modern x86 processors (meaning the 8038680386 and newer) can use an offset big enough to cover all their address space, making memory segmentation a complication that's no longer necessary. Read x86 memory segmentation and the flat memory model for more details.

The segmentation registers are a legacy from the early days of the x86 processors, when the offset wasn't large enough to address all of the memory the processor could address. The original 8086 had a 20-bit address space, but could only use a 16-bit offset. You had to use the segment registers to specify which 64KB of the 1024KB address space you wanted. The segment registers were effectively 20-bit registers where the lowest 4 bits were forced to 0. Loading a segment register set the upper 16 bits of the register. This allowed segment + offset to cover the entire 20-bit address space.

The segment registers still exist, but Linux sets them to 0 so it can pretend they don't. Modern x86 processors (meaning the 80386 and newer) can use an offset big enough to cover all their address space. Read x86 memory segmentation and the flat memory model for more details.

The segmentation registers are a legacy from the early days of the x86 processors, when the offset wasn't large enough to address all of the memory the processor could address. The original 8086 had a 20-bit address space, but could only use a 16-bit offset. You had to use the segment registers to specify which 64KB of the 1024KB address space you wanted. The segment registers were effectively 20-bit registers where the lowest 4 bits were forced to 0. Loading a segment register set the upper 16 bits of the register. This allowed segment + offset to cover the entire 20-bit address space.

The segment registers still exist, but Linux sets them to 0 so it can pretend they don't. Modern x86 processors (meaning the 80386 and newer) can use an offset big enough to cover all their address space, making memory segmentation a complication that's no longer necessary. Read x86 memory segmentation and the flat memory model for more details.

more details on segment registers
Source Link
cjm
  • 27.7k
  • 12
  • 94
  • 87

The segmentation registers are a legacy from the early days of the x86 processors, when the offset wasn't large enough to address all of the memory the processor could address. The original 8086 had a 20-bit address space, but could only use a 16-bit offset. You had to use the segment registers to specify which part64KB of memorythe 1024KB address space you wanted. They The segment registers were effectively 20-bit registers where the lowest 4 bits were forced to 0. Loading a segment register set the upper 16 bits of the register. This allowed segment + offset to cover the entire 20-bit address space.

The segment registers still exist, but Linux sets them to 0 so it can pretend they don't. Modern x86 processors (meaning the 80386 and newer) can use an offset big enough to cover all their address space. Read x86 memory segmentation and the flat memory model for more details.

The segmentation registers are a legacy from the early days of the x86 processors, when the offset wasn't large enough to address all of the memory the processor could address. You had to use the segment registers to specify which part of memory you wanted. They still exist, but Linux sets them to 0 so it can pretend they don't. Modern x86 processors (meaning the 80386 and newer) can use an offset big enough to cover all their address space. Read x86 memory segmentation and flat memory model for more details.

The segmentation registers are a legacy from the early days of the x86 processors, when the offset wasn't large enough to address all of the memory the processor could address. The original 8086 had a 20-bit address space, but could only use a 16-bit offset. You had to use the segment registers to specify which 64KB of the 1024KB address space you wanted. The segment registers were effectively 20-bit registers where the lowest 4 bits were forced to 0. Loading a segment register set the upper 16 bits of the register. This allowed segment + offset to cover the entire 20-bit address space.

The segment registers still exist, but Linux sets them to 0 so it can pretend they don't. Modern x86 processors (meaning the 80386 and newer) can use an offset big enough to cover all their address space. Read x86 memory segmentation and the flat memory model for more details.

added 30 characters in body
Source Link
cjm
  • 27.7k
  • 12
  • 94
  • 87

The segmentation registers are a legacy from the early days of the x86 processors, when the offset wasn't large enough to address all of the memory the processor could address. You had to use the segment registers to specify which part of memory you wanted. They still exist, but Linux sets them to 0 so it can pretend they don't. Modern x86 processors (meaning the 80386 and newer) can use an offset big enough to cover all their address space. Read x86 memory segmentation and flat memory model for more details.

The segmentation registers are a legacy from the early days of the x86 processors, when the offset wasn't large enough to address all of the memory the processor could address. You had to use the segment registers to specify which part of memory you wanted. They still exist, but Linux sets them to 0 so it can pretend they don't. Modern x86 processors can use an offset big enough to cover all their address space. Read x86 memory segmentation and flat memory model for more details.

The segmentation registers are a legacy from the early days of the x86 processors, when the offset wasn't large enough to address all of the memory the processor could address. You had to use the segment registers to specify which part of memory you wanted. They still exist, but Linux sets them to 0 so it can pretend they don't. Modern x86 processors (meaning the 80386 and newer) can use an offset big enough to cover all their address space. Read x86 memory segmentation and flat memory model for more details.

Source Link
cjm
  • 27.7k
  • 12
  • 94
  • 87
Loading