Assembler?

enr00

enr00

Routinier
Ich bin, wie manche schon mitbekommen haben, gerasde dabei C zu lernen, was ich auch sehr interessant finde. Ich frage mich aber auch, ob ich nicht eines fernen Tages Assembler lernen soll, da mich das auch interessiert, was ich bisher davon gesehen habe, vor allem, dass man damit von allen Programmen quasi den Quelltext bekommt. Kann von euch einer Assembler, wie nützlich ist es für euch, und kann man damit executables für M$ und Linux erzeugen, oder nur für eins der beiden. Ferner möchte ich wissen, ob es x86 ist, das am meisten verbreitet ist, oder eben eine andere Assemblersprache?
 
assembler~maschienensprache d.h. du solltest den befehlssatz des prozessors den du programmierst kennen.

natürlich kannst du das in executabels compilen (ist aber eher für zeitkritische speziallösung als "inlay" für c/++ zu sehen)

ich würde mich nicht trauen eine windowmanager in assembler zu schreiben!

ansonsten ist assembler meiner meinung nach sehr einfach zu lernen!
 
Re:

Für welche Prozessorarichtektur sollte ich Assembler denn lernen? Und kann ich das dann gleichermassen für Linux, wie auch für Windows einsetzen? Kennste ein gutes Buch?
 
das kommt immer drauf an also als einstieg 386.
aber da fehlen die ganzen spezialsachen (SSEX,MMX,3dnow, uvm)die heut zu tage eigentlich die extrapower bringen)

wichtig: soche spezial sachen sind nicht mehr portierbar (wenn du assembler code für SSE3 schreibst läuft dein programm/funktion nur auf SSE3 CPUs)

linux/windows portierbarkeit ist gegeben (bis auf libary/BIOS aufrufe)

aber ich bezweifle das irgentjemand ein kompettes fenster programm in assebler ohne libarys schreiben kann!

assembler ist eher für spezialaufgaben/funktionen die die CPU, aufgrund der benutzung von features, entlasten
z.B. (die zahlen sind nicht real)
das umrechnen eines mpeg1 zu mpeg4 dauert auf 686 CPU 1stunde
mit SSE3 unterstützung nur 40minuten
natürlich bekommt man die (fast)gleiche leistung auch aus C/++ herraus wenn man den compiler mit SSE3 optimierung comilen lässt. aber es gibt fälle in denen der compiler nichts damit anfangen kann und da schlägt die assembler stunde!

kurzum: erst C/++ dann assembler!

ein gutes buch kann ich dir nicht empfehlen da meine bibliothek nichts dazu hergibt aber ich denke mit ein wehnig geduld wir der eine oder andere asm-guru hier was posten!
 
Zuletzt bearbeitet:
Hi

Direkt ein gutes Buch kenne ich nur für Windows. "Assembler. Grundlagen der Programmierung" von Joachim Rohde.

Das Buch hat auch nen kleinen Linux teil.


Mein Assembler beschränkt sich auf MASM und ASM für AVR Mikrocontroller.

Zu der Frage ob sich ASM für dich lohn. Die Frage ist schwer zu beantworten, da ich nicht weiß was du brauchst. Generell kann man sagen das man heute ASM nicht mehr sehr oft braucht. Da sich schon fast alles mit höheren Sprachen machen lässt. Und nur für executables (Lin u. Win) lohnt es sich warscheinlich nicht da dies nur indirekt in den Bereich von Assembler führ.Dazu brauchst du viel wissen über Dateiformate und co......



Achja welche ASM syntax du lernen sollst ist leicht zu sagen. Lerne einfach irgend eine den der Rest ist ziemlich ähnlich(wenn du erst einmal denkst wie ein Assembler programmierer).Natürlich gibts die Interrupts von Win nicht unter Lin und so weiter...
 
Zuletzt bearbeitet:
Danke

die ganzen spezialsachen (SSEX,MMX,3dnow, uvm)

Was ist SSX und uvm(wiki hat nix ausgespuckt).

linux/windows portierbarkeit ist gegeben (bis auf libary/BIOS aufrufe)

Super, mit dem BIOS kann ich sowieso nichts anfangen.

das umrechnen eines mpeg1 zu mpeg4 dauert auf 686 CPU 1stunde
mit SSE3 unterstützung nur 40minuten

Wozu braucht man diese Umrechnungen?

kurzum: erst C/++ dann assembler!

OK, auch gut, befasse mich sowieso momentan mit C.

Direkt ein gutes Buch kenne ich nur für Windows. "Assembler. Grundlagen der Programmierung" von Joachim Rohde.

Danke.


Zu der Frage ob sich ASM für dich lohn. Die Frage ist schwer zu beantworten, da ich nicht weiß was du brauchst.

Eigentlich brauche ich es hauptsächlich, um später mal andere executables zu analysieren, auch mal hobbyhalber kleine Programme cracken.

Achja welche ASM syntax du lernen sollst ist leicht zu sagen. Lerne einfach irgend eine den der Rest ist ziemlich ähnlich(wenn du erst einmal denkst wie ein Assembler programmierer).Natürlich gibts die Interrupts von Win nicht unter Lin und so weiter...

OK.
 
MMX, 3DNOW sind einfach Befehlserweiterungen für "Moderne" X86 CPUS die beim originalen 8086 nicht vorhanden waren. Diese Befehle hat man eingeführt um Spezialaufgaben zu erleichtern bzw zu beschleunigen.

mpeg4 und mpeg1 ist einfach ein Video Format.


mfg manhunt
 
SSEX != SSX [wobei X=="",1,2,3,...]
als "debuggerskave" ist das aber eher uniteressant (alles rund um multimedia) da ist NX und konsorten interessanter!
 
Also pcasm ist ein gutes Buch. Kann man u.a. auf deutsch runterladen und alle Linux Beispiele dazu.
Geschrieben ist es fuer Linux mit nasm.
 

Ähnliche Themen

Fragen zu Gentoo

Server-Monitoring mit RRDTool

Zurück
Oben