On Fri, 2003-11-14 at 13:49, Hans Franke wrote:
In a 16 Bit CPU, there's no such thing as an 80 K
block.
That is physically not true.
I had an 8086 multibuss machine, it had 16K or 32K (EPROM) short of a
megabyte of dynamic RAM. The CPU had SI and DI, and DS and ES, and I can
write code that moves arbitrarily-sized blocks of data, from 0 to 1024K
bytes of data. It takes more than REP MOVSW to do that, but that's
immaterial.
It's like saying you can't write recursive code on a stackless machine
because it wasn't envisioned by the manufacturer, or isn't accomodated
in the hardware. It may be hard or ugly, but it's done.
Who cares what the manufacturer says?
Don't forget that "assembly language" itself is an abstraction, like C,
that often restrains options. Of course CPUs contain a bunch of physical
resources like registers and flags, and datapaths. If we were to write
code at that level of abstraction we'd end up writing code very
differently. It's just not very convenient, as our ancestors realized.