[PLUG] Segmented memor architecture -- Why is it bad?
Anthony Schlemmer
aschlemm at attbi.com
Thu May 30 22:34:41 UTC 2002
Things were much simpler back in my days of coding 8080 and Z80 assembly
language under CP/M. With 16 bit addressing and no segments things were
really straight forward. Later on when I got into doing some X86 work I
never really felt comfortable with the concept of Intel's
segment:offset crap.
I also managed to avoid much x86 work in college as about the only class
that used any sort of microprocessor assembly language was an operating
system pragmatics class I took as a senior. I was relieved to find that
our target platform for the class was a Motorola 68010 based system
with an MMU. We did have to take an assembly language class as well but
at the time it was IBM 360/370 assembly. It was an amazing thing to see
IBM's assembler and our assembled programs run on our school's CDC
Cyber mainframe which had a 360/370 emulator that was written in
Minnesota Pascal on it.
Tony
On Thursday 30 May 2002 14:33 pm, Greg Long wrote:
> Programmers of course had to do the most work, but there were
> extensive support needs generated by Joe User who didn't understand
> why his (then high end) 32mb system didn't have enough [conventional]
> memory to run an old DOS app that installed from a single floppy
> disk.
>
> I'm glad I didn't deal with segment:offset any more than was recently
> necessary for the x86 Assembly Language Course at OIT.
>
> Greg
>
> -----Original Message-----
> From: plug-admin at lists.pdxlinux.org
> [mailto:plug-admin at lists.pdxlinux.org] On Behalf Of Craighead, Scot D
> Sent: Thursday, May 30, 2002 2:27 PM
> To: 'plug at lists.pdxlinux.org'
> Subject: RE: [PLUG] Segmented memor architecture -- Why is it bad?
>
> >Please elucidate this subject. Why did they choose a segmented
> > memory architecture, and why is it bad?
>
> I'm surprised you don't know what this refurs to. Maybe it's because
> the 32-bit operating systems have pretty much solved the problem.
> Back in the DOS days, if you wrote assembly language programs, you
> cursed this daily. Memory locations were made of 2 16-bit numbers,
> the segment and the offset. This meant that there were were 6 "memory
> models" for a program. In C, you just had to tell your compiler
> which to use, but it was a big hassle if you wanted to link in
> assembly modules to your C code. You had the tiny memory model,
> which used 1 16-bit addess for all code and all data, for example.
> This means your entire program had to fit into 1 64K segment as well
> as your variables. Executable files the have the extension .com are
> this way. Then you had Small, one segment for code and another for
> data. You can extrapolate the rest from here. To make things even
> worse, there eas the 640K barrier. All the memory locations above
> this point were resurved by the operating system. So that's all the
> memory you get for your applications programs. Deal with it. Then
> along came extended and expanded RAM. Two different ways to do the
> same thing, have access to more memory. The only problem was that it
> was a major hassle to work with. It is amazing that PC's became so
> huge when they were designed so poorly. Fortunate, only programmers
> had to deal with this and Joe user had no idea.
>
> _______________________________________________
> PLUG mailing list
> PLUG at lists.pdxlinux.org
> http://lists.pdxlinux.org/mailman/listinfo/plug
>
>
> _______________________________________________
> PLUG mailing list
> PLUG at lists.pdxlinux.org
> http://lists.pdxlinux.org/mailman/listinfo/plug
--
Anthony Schlemmer
aschlemm at attbi.com
>>>>This machine was last rebooted: 2 days 15:41 hours ago<<
More information about the PLUG
mailing list