kleine einstiegshilfe
-
Also ich würde gern etwas Assembler auf gängiger Architektur lernen.
Aber beim Einstieg kommen schon die ersten Probleme:Was verwende ich am besten?
Welche Syntax muss ich verwenden (intel oder AT&T)?
Was für Register habe ich?
Wie kann ich 32 oder 64 bit verwenden oder wo genau liegt da der Unterschied in Assembler?Also es sind eher so praktische Fragen, Assembler-Grundlagen sind vorhanden (MIPS), aber wie ich auf meinem Computer am besten anfange ist mir noch schleierhaft.
Ich möchte nur Linux-eigene tools verwenden
-
shisha schrieb:
Also ich würde gern etwas Assembler auf gängiger Architektur lernen.
Ich möchte nur Linux-eigene tools verwenden
Schade, denn der Einstieg in (Intel-)Assembler und das Arbeiten mit Hexcodes
geht definitiv hervorragend mit dem Windows-internen Doswerkzeug Debug.Bevor man in Linux den Asm Einstieg sucht, sollte man eigentlich erst einmal etwas Scripsprache lernen und C-Programmierung mit dem gcc/gdb. Der Vorteil ist, du lernst das System viel besser kennen und es gibt viele Beispiele z.B. zu Algorithmen im Netz.
Der Unterschied zwischen 32bit Assembler und 64bit Assembler liegt
verwendungstechnisch im System. Es muß die unterschiedlich Addressierung
und die verfügbaren Befehle unterstützen. Bei einem Multiuser/Multitaskingsystem
müssen ja z.B. mehrfach die richtigen Register usw. zwischengesichert werden. Das war damals für Intel wohl auch ein Problem bei der Einführung von MMX, so dass MMX nur alternativ zur FPU genutzt werden kann.Eine Übersicht über die verfügbaren Register und Befehle bietet das 500 Seiten
lange Basic-Manual von Intel. Für Amd Prozessoren gibt es ebenfalls sehr gute
Dokumentationen auf deren Internetseite.Wenn du sofort anfangen willst zu programmieren, dann solltest du als erstes
versuchen, deine bisherigen Progamme in Asm in die (AT&T) Syntax des
Unix-urassemblers as (gas) zu übersetzen und in die Syntax von Linux (Systemaufrufe).
Welche Linux-eigenen Tools sonst noch in Frage kommen, hängt ein bißchen
auch von der Linuxversion selbst ab.