If the external memory (1 MB) in 8086 based system is segmented into code, data, stack and extra which are all 64 kB, what do we do with the rest of the memory? Does it go waste?
Electronic – memory segmentation in 8086
memorymicrocontrollermicroprocessorx86
Related Topic
- Electronic – Memory timing values for microprocessor (8086)
- Electronic – What resides in the different memory types of a microcontroller
- Electronic – How does the Intel 8086/88 know when to assert the IO/M signal
- Electronic – How 8086 microprocessor access RAM
- Electronic – Accessing odd address memory locations in 8086
- Electronic – What does the 8086 CPU do with the data returned from an address in RAM
Best Answer
In the 8086 each segment is, yes, 64KiB. Those segments can move though.
You set a "segment pointer" which defines where a segment starts. It acts as an address offset, which is added to the internal 16-bit address of the program counter (or other indexing register).
Changing the segment pointers is a trivial matter, so although you can only access 64KiB at a time, you can move that 64KiB window around at will to access the whole 1MiB of memory space.