Search results
Results from the WOW.Com Content Network
The Intel x86 computer instruction set architecture has supported memory segmentation since the original Intel 8086 in 1978. It allows programs to address more than 64 KB (65,536 bytes) of memory, the limit in earlier 80xx processors.
In a computer using virtual memory, accessing the location corresponding to a memory address may involve many levels. In computing, a memory address is a reference to a specific memory location in memory used by both software and hardware. [1] These addresses are fixed-length sequences of digits, typically displayed and handled as unsigned ...
The 8086 [3] (also called iAPX 86) [4] is a 16-bit microprocessor chip designed by Intel between early 1976 and June 8, 1978, when it was released. The Intel 8088, released July 1, 1979, [5] is a slightly modified chip with an external 8-bit data bus (allowing the use of cheaper and fewer supporting ICs), [note 1] and is notable as the processor used in the original IBM PC design.
The 8086 was introduced in 1978 as a fully 16-bit extension of 8-bit Intel's 8080 microprocessor, with memory segmentation as a solution for addressing more memory than can be covered by a plain 16-bit address.
However, on the 80386, with its paged memory management unit it is possible to protect individual memory pages against writing. [4] [5] Memory models are not limited to 16-bit programs. It is possible to use segmentation in 32-bit protected mode as well (resulting in 48-bit pointers) and there exist C language compilers which support that. [6]
The x86 architecture in real and virtual 8086 mode uses a process known as segmentation to address memory, not the flat memory model used in many other environments. Segmentation involves composing a memory address from two parts, a segment and an offset ; the segment points to the beginning of a 64 KiB (64×2 10 ) group of addresses and the ...
In 8086, the main stack register is called "stack pointer" (SP). The stack segment register (SS) is usually used to store information about the memory segment that stores the call stack of currently executed program. SP points to current stack top. By default, the stack grows downward in memory, so newer values are placed at lower memory addresses.
In a system using segmentation, computer memory addresses consist of a segment id and an offset within the segment. [3] A hardware memory management unit (MMU) is responsible for translating the segment and offset into a physical address, and for performing checks to make sure the translation can be done and that the reference to that segment and offset is permitted.