Suche Assembler-Tutorial x64 unter Windows?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du wirst eher sehr Wenig Assembler Beispiele finden. Die Einsatzgebiete von Assembler sind derart spezialisiert , das Dieser gewöhnlich von Leuten eingesetzt wird die wissen was zu tun ist und anhand der Aufgabenstellung die notwendigen Maschinen-Befehle einsetzen.

Ich würde Dir, abgesehen von ein Paar kleinen "Hallo Welt"-Spielerein davon abraten ohne Kenntnisse über Speichermodelle und dergleichen wild drauflos zu programmieren.

Assembler ist derart pur, das Du nahezu jede Speicherzelle deines Rechners direkt manipulieren kannst, ...ohne das irgendeine Instanz prüft ob Du noch in dem Deinem Programm zugewiesenen "Eckchen" herumwurstelst oder bereits irgendwelche "lebenswichtigen Organe" zersägst.

trotzdem noch ein paar harmlose Demos:

https://www.davidgrantham.com/

https://www.csee.umbc.edu/portal/help/nasm/sample_64.shtml


Rlohdaen  22.12.2018, 14:10

Windows10 läuft im ProtectedMode - da muß man schon einiges von verstehen, um da aus der SandBox eines Prozesses heraus das System zu verhunzen. Viel wahrscheinlicher ist da, daß man einfach einen Absturz (des Prozesses) verursacht. Wenn man es jedoch nicht versteht, irgendeine Ausgabe hinzubekommen (ohne dabei Abstürze zu verursachen), ist das ganze recht ermüdend / frustrierend. Daher ist die Frage nach einem Beispiel gut verständlich - zumindest einfach mal einen simplen Text in der Kommandozeile ausgeben ... denn ohne Ausgaben dieser Art kann man sich dieses Metier nicht erarbeiten.

0
242jso 
Fragesteller
 24.12.2018, 13:39
@Rlohdaen

Danke für die professionellen HIntergrundinfos

0
242jso 
Fragesteller
 24.12.2018, 13:03

Ich glaube, dass Du Assembler etwas falsch einschätzt... wir haben ja noch ein Betriebssystem, dass die gestarteten Prozesse unter Kontrolle hält. Ob im Prozess nun ein Programm bearbeitet wird, dass in Assembler programmiert wurde oder ein Kompilat aus einer Hochsprache, ist dem Betriebssystem erstmal egal. So betrachtet ist Assembler nicht "gefährlicher" als z.B. C...

Auch ist der Fragensteller kein Programmieranfänger, sondern ein alter Sack mit 30 Jahren Programmiererfahrung (das meiste davon professionell) und einem sehr guten Universitäts-Diplom in Informatik :-) Grundsätzlich verstehe ich schon den Unterschied zwischen direkter und indirekter Adressierung, auch wenn meine letzten Assembler-Zeilen mehr als 20 Jahre her sind - da waren 64-bit noch unüblich :-)

Danke aber für Deine Beispiele... Ich freue mich darauf, mir das 64-bit-Printf aus dem zweiten Link in Ruhe anzuschauen (solange die Kinder noch auf der Skipiste sind). Bisher habe ich printf in x64 noch nicht hinbekommen!

0

Warum willst Du Dir unbedingt Assembler für Windows antun?

C, C++ oder C# sind schlimm genug, weil Du da schon sehr systemnah prohrammieren musst und viele Dinge nicht nutzen kannst, die in Java etc. vorhanden sind, z. B. Klassen für alles Mögliche.

Damit programmierst Du Dir schon einen Wolf und mit Assembler noch viel schlimmer!


Rlohdaen  22.12.2018, 14:16

Manche Aufgabenstellungen kann man nur in Assembler lösen - das liegt in der Regel im Bereich Kernel & DeviceDriver. Assembler würde ich nur empfehlen, wenn der Betreffende schon eine CompilerSprache (C++ / Delphi / C# / ...) gelernt hat und gut beherrscht - die so gelernte Strukturierung kann man dann auf Assembler portieren - sonst ist man in der Tat "verloren".

0
242jso 
Fragesteller
 24.12.2018, 12:49

Also erstmal geht es mit nicht um Produktivität, sondern um Freude und Interesse und zweites arbeite ich schon mit einer Hochsprache (Go). Ich möchte allerdings SIMD nutzen und das bekomme ich imho am besten hin, indem ich das SIMD-Modul direkt in Assembler programmiere und das obj zum Go-Projekt linke.

Aber eigentlich solltest Du meine Frage beantworten und ich nicht Deine :-)

0