3 ms·
Segmented memory was not a "waste of development time" at the time. It allowed the 8086 to be compatible as far as source and machine-translated binaries with t
by bitwize 3y ago
Segmented memory was not a "waste of development time" at the time. It allowed the 8086 to be compatible as far as source and machine-translated binaries with the 8080, while expanding the address space considerably. It allowed considerable advances while retaining some measure of backward compatibility.., like x86-64 did.
- bcrl 3y agoThe way Intel did it was absolutely horrible. Had the left shift of segment selectors on the 8086 been 8 bits rather than 4, the extra 15MB of address space would have given DOS apps substantially more headroom. Having programmed C and assembly on both the x86 and the 68000 in the 1980s, x86 was an absolute nightmare to program. Even in C you had to always be intimately aware of your memory model at all times on x86 (remember near, far and huge pointers??!!?) annotating pointers to work around limitations of the architecture, whereas on 68k everything was just a 32 bit pointer. Oh the loss of productivity that one decision driven by the desire to save money avoiding putting an extra 4 address pins on the CPU ended up costing the industry. The horror.
- 13of40 3y agoI always thought the point with memory segments was that you could load a program verbatim without adjusting any pointers and do tricks like Terminate and Stay Resident and executing one program from another. E.g. Command.com and edlin.com don't need to know where they're loaded when they're both in memory, they just start at CS:0100.