Assembler

Gibt es im Internet Assemblerkurse, die was taugen? Und vielleicht einigermaßen brauchbare Assembler, die man nicht unixmäßig überumständlich mit Parametersalat bedienen muß? (Beispiel aus der Amigazeit: Maxon-Assember, Seka, etc…).

Machst du etwas Hardware-orientiertes oder Grafik ? Wer codet denn noch ASM heut zu tage ? :smile: Ich hab das vor 2-3 Jahren zu letzt gemacht als ich 16 war, hehe

Ansonsten hast du sicher ne Bibliothek in der Stadt. Peter Norton’s Assembler Buch ist sehr detailiert. Zeigt dir alle Register und deren Verwendenungen auf und die Hex/Bin-Rechnen :smile:

Hi,

wenn Du langsam anfangen willst, dann benutze den integrierten Assembler in Turbo Pascal oder -C. D.h. Nur die interessanten St"ucke in Maschinencode, das drumherum in Hochsprache. Zum Assembler selbst (unter DOS) ist helppc eine sehr gute informationsquelle:

http://stkwww.fys.ruu.nl/~faber/Ahelppc.html

MfG Lutz

Wer codet denn noch ASM heut zu tage ?

Leider fast niemand mehr - stell’ Dir mal vor wie ein PIII/500 abgehen wuerde wenn man ihn nah an der Hardware in Assembler programmieren wuerde…

stell’ Dir mal
vor wie ein PIII/500 abgehen wuerde wenn
man ihn nah an der Hardware in Assembler
programmieren wuerde…

Ja schon, aber überleg mal was diese Programme kosten würde, in Zeiten von Protected Mode, visuellen Betriebssystem wie Win32. Wenn die stundenlang am Hauptfesnter proggen :smile: Unter DOS war’s ja schon reht aufwendig ganze Programme in ASM zu coden.
Es gibt zwar WinASM und seine Apps sind wirklich sehr kompakt und schnell. Aber zum einen brauchst verdammt gute Kentnisse des OSes und zum anderen viel viel Ausdauer :smile:

Visuell kann man eigentlich schon nur mit nem RAD-Tool wie Delphi oder C++ Builder coden :smile:

Wer codet denn noch ASM heut zu tage ?

Leider fast niemand mehr - stell’ Dir mal
vor wie ein PIII/500 abgehen wuerde wenn
man ihn nah an der Hardware in Assembler
programmieren wuerde…

…vorausgesetzt, es wäre einer der paar Programmierer weltweit, die wirklich noch besser Assembler per Hand schreiben können als es die Compiler können.

Ohne Hilfsmittel ist dies heutzutage schlichtweg unmöglich geworden, bei all den Memory Misalignments, Pipeline Stalls, der Sache, ob man etwas in den Cache und in welchen kriegt, MMX, ISSE, 3DNow…
Ich habe jedenfalls nach dem normalen Pentium aufgegeben, Sachen per Hand zu schreiben.

Das erfolgversprechendste ist IMHO, etwas in C/C++ zu schreiben, da schon drauf zu achten, daß man es ordentlich schreibt, und dann sich den Assembler-Code anzuschauen und da dann Verbesserungen zu machen.
Obwohl man natürlich die größten Steigerungen erreicht, wenn man den Algorithmus optimiert und nicht die Implementation.

Mathias Ricken
Lead Programmer – Chaotic Arts
Email [email protected]
Internet www.chaoticarts.de

Wer codet denn noch ASM heut zu tage ?

Leider fast niemand mehr - stell’ Dir mal
vor wie ein PIII/500 abgehen wuerde wenn
man ihn nah an der Hardware in Assembler
programmieren wuerde…

Ja, so wie mann es in der Prozessleittechnik noch macht. Bedenke bitte, ein alter MC68k steckt immer noch in der ganzen Motronic drinnen und reicht!

…vorausgesetzt, es wäre einer der paar
Programmierer weltweit, die wirklich noch
besser Assembler per Hand schreiben
können als es die Compiler können.

Moeglicherweise bieten manche Befehlssaetze mehr als C oder C++… Vielleicht sind einige Maschinenmodelle gar nicht gut vertraglich mit dem von-Neumann-Modelle bzw. der PRAM… Denke doch nur einfach an die Datenflussarchitekturen.

In der Digitalen Signalverarbeitung benutzt man gerade aus diesem Grund Assembler, ansonsten liessen sich Problemloesungen nicht effektiv auf einen bestimmten Prozessor mit einer bestimmten Architektur implementieren.

Ohne Hilfsmittel ist dies heutzutage
schlichtweg unmöglich geworden, bei all
den Memory Misalignments, Pipeline
Stalls, der Sache, ob man etwas in den
Cache und in welchen kriegt, MMX, ISSE,
3DNow…

Richtig. Aber auch Microcodierung war ohne entsprechende Hilfsmittel unmoeglich…
ein echt weisser Schimmel…

Ich habe jedenfalls nach dem normalen
Pentium aufgegeben, Sachen per Hand zu
schreiben.

Ich tue es doch noch ab und zu…

Das erfolgversprechendste ist IMHO, etwas
in C/C++ zu schreiben, da schon drauf zu
achten, daß man es ordentlich schreibt,
und dann sich den Assembler-Code
anzuschauen und da dann Verbesserungen zu
machen.

Sicher richtig. Ich habe einmal in einem Numa-Praktikum mit einer ordentlichen Datenstruktur und einen ordentlich kodierten Algorithmus, nicht optimiert, die geg. Kommilitonen ca 12-fache Rechenleistung, geg. der Musterloesung immerhin noch die 4-fache Rechenleistung erzielt.

ICh habe es dann optimieren und autovektorisieren lassen. Dabei erzielte ich ca. die 50-fache Rechenleistung gemessen an der optimierten Lsg. meiner Kommilitonen, immerhin noch die 12-17-fache Leistung der optimierten Musterloesung…

Obwohl man natürlich die größten
Steigerungen erreicht, wenn man den
Algorithmus optimiert und nicht die
Implementation.

Fuer grosse Zeiten sichherlich, aber:
da in ca 2% des Codes ca 95-98(!)% der Rechenleistung vergeigt werden, rentiert es sich schon, im Zweifelssfall die Kern-Algorithmen in Assembler zu kodieren, um die Leistungsfaehigkeit der jeweiligen HArdware nutzen zu koennen, wie Multiply-and-Add, oder paralleles Rechnen in einer Pipeline mit gleichzeitigen LAden der zukuenftigen Operanden und Abspeichern der fertigen Ergebnisse. Solche Optimierung scheint kein Compiler so gut zu machen wie ein guter Assemblerprogrammierer.
Mehrere VLIW-ARchitekturen sind ja genau daran gescheitert…

Mathias Ricken
Lead Programmer – Chaotic Arts

Hans

Hallo Hans,

Solche Optimierung scheint
kein Compiler so gut zu machen wie ein
guter Assemblerprogrammierer.

Eben, wie ein guter Assemblerprogrammierer, und davon gibt es eben nicht so viele. Das war genau mein Punkt. Ich leugne ja nicht, daß man auch mit einer recht simplen Handoptimierung ein paar Prozente gewinnen kann. Die meisten, die jedoch Assembler lernen, um dann ihr Programm zu optimieren, erwarten jedoch gleich Wunder, und die treten in den meisten Fällen nicht ein.

Mathias Ricken
Lead Programmer – Chaotic Arts
Email [email protected]
Internet www.chaoticarts.de

stimmt! es kostet! doch was kostet es was manche programmierer so verbrechen? wie sie mit dem speicher von vielen leuten umgehen(kostet ja nur das geld kunden) und wie war das mit visuell entwickeln?
es ist inzwischen eine unsitte geworden dass die programme groessen erreicht haben die niemand mehr handlen kann.
schade, ich mochte den 6502 und den 6800

bai

bike

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]