Welcome, Guest. Please login or register.

Author Topic: Memory Addresing  (Read 4954 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Steady

Re: Memory Addresing
« on: July 28, 2004, 01:30:45 PM »
@ Xamiche:
Quote
Come on, we're talking about 23 years ago. The 68000 didn't even exist when the x86 series started (8086 -1981, 68000 -1984). No one is suggesting that such addressing is relevant now. Sheesh!


Actually, it was 8086 - 1978, 68000 - 1979. Still, the 8086 was there first.

@General thread
On compatibility, the 8086 wasn't binary compatible with it's predecessors (8080/8085) but was supposed to allow you to easily assemble the 8080 source to run on 8086. I imagine some translation takes place in the assembler and I have never seen it in action, but it was meant to be the idea.

Also, the current x86 architecture still has segmentation, it is just that most people program to the 32-bit flat architecture (ie CS/DS/ES/SS/FS/GS all have the same value). The 8086 could also be programmed in flat mode too, if you wanted to limit everything to 64k and only called the BIOS/DOS routines (ie no direct memory access). That was what the .COM programs were all about.
 

Offline Steady

Re: Memory Addresing
« Reply #1 on: July 28, 2004, 04:14:09 PM »
Quote
...oh look, a site which says the 8086 was released in 1879, Wow, the Victorians had personal computers. Clever bunch.


he he... quality.

Just for a bit more useless information, CP/M used .COM as it's executables. Since DOS was based on CP/M a similar addressing model was provided to ease porting. DOS COM programs start at address 0x0100 and included a PSP between 0x0000 and 0x0100 similar to CP/M. EXE files were the 'proper' format for DOS programs, though.