Wo befindet sich eine standardisierte Sammlungen von Assembler-"Funktionen"?
-
Also gibt es irgenwo im Internet eine standardisierte Sammlungen an Basisprogrammen für Assemblerprogrammierer? Zum Beispiel sowas wie printf oder scanf oder
playwave oder Datumsanzeige oder Adressiermodusumschaltung und und und ...Mir ist bisher nichts deartiges begegnet (Nur ansatzweise im Assemblerbuch von Reiner Backer - sowas wie Assembler-Gems meine ich nicht, sondern eher einen Basiskatalog für Funktionen, die man einfach nachschlagen kann). Wäre auch gut, wenn die jeweiligen Programme einsteigerfreundlich oder mitarbeiterfreundlich kommentiert sind.
Falls keine bekannt ist, wie wäre es, eine solche (mehr oder weniger hardwareunabhängige!) Sammlung gemeinsam zusammenzustellen?
-
Solche Funktionen sind, wie bei Assembler-Codes ueblich, stark vom verwendeten System (Betriebssystem, CPU und restliche Hardware) abhaengig. Es gibt bestimmt im Netz zahlreiche in Assembler geschriebene Libraries mit oft verwendeten Funktionen wie Text-I/O (printf) o.Ae.. Die duerften sich aber idR. auf ein OS, bzw. die speziellen Anforderungen des Projekts/Programms fuer das sie geschrieben wurden, beschraenken.
Alles Andere waere einfach ziemlich muessig.Wenn du eine groessere Sammlung "standardisierte"r Funktionen wie printf willst, kannst du auch einfach sowas wie eine stdlib von C in deine Programme linken und deren Funktionen so benutzen. Dann solltest du aber vielleicht allgemein ueberdenken, ob du nicht besser gleich ganz in einer Hochsprache programmierst.
Falls es um's Lernen geht, bleibt dir eine mehr oder minder muehsame Suche nach Einzelteilen und eigener Einsatz nicht erspart.
-
hi, Nobuo,
Die Sache ist vor allem die, dass, wenn ich mit Assembler lernen oder arbeiten will, nicht jedesmal gezwungen sein muß, das Rad neu zu erfinden.
Man kann mit Assembler und einer Sammlung an Funktionen genausogut wie in einer Hochsprache programmieren oder wie dort Code für - sagen wir mal beliebte Roboter austauschen.Inwieweit Funktionen auf eine Plattform (oder Sprache) beschränkt sind, hängt letztlich auch von den Programmierern selbst ab oder den vorhandenen Tools und den Leuten.
Man könnte ein ganzes Buch darüber machen, und die, die glauben, Assembler wäre kompliziert, würden staunen, wie einfach und aufregend die Programmierung in Asm mit so einem Buch/Katalog sein kann.
(wäre auch gut als intelligentes Plugin für den sowieso schon extrem guten IDA
denkbar)
-
In Assembler programmieren heiß auch immer das Rad wieder neu erfinden. Algorithmen die für aktuelle Prozessorgenerationen optimiert sind, können unter Umständen auf zukünftigen Plattformen suboptimal sein.
Unter Windows ist man z.B. meist mit der VCRT gut bedient, da die Funktionen spezifisch für den verwendeten Prozessor optimiert sind.
-
Da stimme ich masm zu.
Das Rad immer wieder neu zu erfinden (oder zumindest die Moeglichkeit zu pruefen) ist oftmals die Grundlage fuer gute Assembler-Programmierung.Assembler ist aufgrund seiner geringen Abstraktionsebene zwangslaeufig stark plattformabhaengig. Spaetestens wenn die CPU zweier Zielplattformen nicht mehr kompatibel sind, bist du gezwungen, komplett neuen Code zu schreiben. Da helfen dir auch die besten Tools und Leute nichts.
Allein Code in Hochsprachen halbwegs betriebssystemunabhaengig zu machen, um ihn z.B. auf Windows und Linux laufen zu lassen, kann ein reichlich komplexes Unterfangen sein. Das macht Assembler nicht wirklich besser.Libs mit haeufig gebrauchten Funktionen gibt es wie gesagt bereits. Auch als Quellcode und ueber einiges Gebastel fuer verschiedene Systeme compilierbar.
Wenn du das unbedingt als Assembler-Code haben willst, lass es halt durch einen Compiler laufen und als Assembler-Code ausgeben.Wenn du einfach nur beim Rumbasteln fertige Funktionen wie printf haben, aber weder etwas selbst schreiben noch raussuchen willst, linke am besten gegen eine fertige Library.
So sehe ich abgesehen von praktischer Uebung im Rahmen eines Buchs oder Tutorials keinen praktischen Nutzen in mehr oder weniger umfassenden Sammlungen von Standardfunktionen in Assemblerquellcode.
Wenn du wirklich Spass am Programmieren in Assembler hast, schreib den Kram halt selbst?