Macroassembler war: Re: AW: linux-l: hw suche ....

tho at thomsen.isdn.cs.tu-berlin.de tho at thomsen.isdn.cs.tu-berlin.de
Do Apr 1 13:49:01 CEST 1999


In message <3702430B.74BDDADB at trionet.de>, Wolfgang Metze writes:
> 
[..]

> Die PDP11 war/ist eine Rechenanlage von DEC. Als ich noch zur Schule
> ging, habe ich an so einem Teil mal gearbeitet. Zur Geschichte: Die
> PDP11 ist schuld daran, das es C gibt (bitte nicht schlagen!).
 Doch, doch - Strafe muss sein.

> Das liegt daran, das die PDP11 u.a. im Maschinencode sog. Autoincrement
> Anweisungen kennt. Diese Möglichkeiten haben sich direkt in C
> niedergelegt. Konstrukte wie i++ konnten somit genau in einen
> Maschinenbefehl kodiert werden. 
 Aber nur, wenn i kein Pointer ist; in diesem Fall muss i um die Groesse
der Objekte, auf die i zeigt (zeigen sollte ;) erhoet werden. Also muessen
mehrere Maschinenanweisungen geschrieben werden, es sei denn, die CPU ver-
fuegt ueber maechtigere Befehle, wie z.B. 'addq' des MC68k.

> C ist somit eine maschinennae
> Programmiersprache, was ihr auch (zu recht meine ich) das Gespööt
> eingebracht hat, ein Hochsprachenassembler zu sein.
 Ich denke nicht, das dies der Grund ist. Die Grundfunktionen 'CAR' und 'CDR'
von LISP entsprechen auch den Namensgleichen Registern eines ollen Main-
frames. Trotzdem nennt kaum jemand LISP eine Maschinennahe Programmiersprache.

 Der Grund ist wohl vielmehr, dass C ausgiebigen Gebrauch von Pointern macht
und das die meisten nicht daran erinnert werden wollen, dass der Rechner nun-
einmal Bytes speichert und nicht 'Geschaeftsvorgaenge' o.ae. .


Guenther

 BTW: Auch in LISP gibt es ADD1 (bzw. 1+ in CommonLISP). Da fallen mir auch
noch INCR in Pascal ein und 1+ in Forth ...



Mehr Informationen über die Mailingliste linux-l