Autor |
Beitrag |
g1o2k4
      
Beiträge: 493
|
Verfasst: Mi 06.08.08 14:47
hallo
ich hab schon bei allen moglichen anlaufstellen gesucht...
amazon,ebay,buecher.de
aber es gibt echt keine guten bücher zur x86 asm programmierung.
ich hab keine lust das intel reference manual zu wälzen. ich such eher so ein buch wie es das auch für jede programmiersprache gibt. mit einführung, vertiefung und beispielen.
kennt jemand soetwas ? Moderiert von Christian S.: Topic aus Sonstiges (Delphi) verschoben am Mi 06.08.2008 um 15:34
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Mi 06.08.08 15:05
Allgemein? Oder bezogen auf ein bestimmtes Betriebssystem? (Windows?)
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Mi 06.08.08 15:12
Sry, bin noob, aber x86 ist doch das ganz stinkormale Grund-Assembler oder? Ich hab mal so ein billiges Buch erstanden, glaub das war es: www.amazon.de/Progra...218028123&sr=8-8. Das fand ich sehr interessant. Muss alleridngs sagen dass ich bis heute kein Assembler kann, was natürlich irgendwie auch wieder dagegen spricht 
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Mi 06.08.08 15:48
Tilman hat folgendes geschrieben: | Sry, bin noob, aber x86 ist doch das ganz stinkormale Grund-Assembler oder? |
x86 bezeichnet eine Prozessorarchitektur, die mit dem Intel 8086 begann und 16-bittig war. Häufig verwendet man sie auch für die nachfolgende 32-bit-Architektur ab dem 80386. Oder in einem Wort: Ja. 
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
mindtrap
      
Beiträge: 62
|
Verfasst: Mi 06.08.08 15:55
Hi,
ich kann dir nur diese Seite hier empfehlen: www.masm32.com/
Da wird dir zu jedem Assembler geholfen.
Grundsätzlich ist es vielleicht nich verkehrt, wenn du dich für einen Assembler entscheidest
und dann die - so gut wie immer - beiliegenden Tutorials und Hilfestellungen durcharbeitest.
Weitere gute Quellen gibt es überall im Netz zu finden und auch im obigen Forum.
Ich für meinen Teil kaufe mir nur noch Bücher, wenn es um spezifische Probleme geht und
bis jetzt konnte ich noch so gut wie alles im Internet erfahren. (aber das kann jeder für sich entscheiden)
MfG
|
|
GTA-Place
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Mi 06.08.08 15:55
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Mi 06.08.08 16:16
jaja, ich weiß, wollte bloß sichergehen. Also das oben genannte Buch handelt von x86-Mnemonics. Bei Amazon steht zwar 2002 oder so, aber wenn ich mich recht erinner ist es ne neu-Auflage von 1990.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
g1o2k4 
      
Beiträge: 493
|
Verfasst: Mi 06.08.08 16:21
also mit x86 mein ich jetzt gängige 32bit cpus, die ja alle auf x86 basieren.
also z.b. pentium IV. und das in einem buch über assembler. so dass auch das cis dieser cisc-cpu miterläutert wird.
und noch zur info...x64 heißt zwar 64bit aber in der cpu läuft auch kein echter 64bit bus das sind höchstens 48bit oder weniger je nach cpu...
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Mi 06.08.08 16:42
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Mi 06.08.08 16:52
Naja der letzte Äußerung g1o2k4s nach war meine Frage ja mehr als Berechtigt 
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
g1o2k4 
      
Beiträge: 493
|
Verfasst: Mi 06.08.08 16:53
vorallem weil die aktuellen core 2 duos auf der pentium architektur basieren um platz zu sparen durch die kleine fertigungstechnik. also müsste die auch x86 heißen. obwohl sie em64t bzw heute intel64 unterstützen.
|
|
Reinhard Kern
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Mi 06.08.08 17:29
g1o2k4 hat folgendes geschrieben: | hallo
...
aber es gibt echt keine guten bücher zur x86 asm programmierung.
ich hab keine lust das intel reference manual zu wälzen. |
Hallo,
das sind auch verschiedene Themen. Im intel werden die Maschinenbefehle (und die Mnemonics dazu) abgehandelt, aber nicht, wie man zu einer Programmstruktur kommt.
Wie man Makros schreibt oder Unterprogrammaufrufe usw., steht im Manual zum Assembler-Programm, z.B. MASM (Es gibt auch andere, und die sind auch nicht unbedingt kompatibel). Dafür steht im MASM32-Manual nur eine Übersichtsliste der Assembler/Maschinenbefehle.
Nur beides zusammen ergibt einen Sinn.
Gruss Reinhard
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Mi 06.08.08 18:00
g1o2k4 hat folgendes geschrieben: | vorallem weil die aktuellen core 2 duos auf der pentium architektur basieren um platz zu sparen durch die kleine fertigungstechnik. also müsste die auch x86 heißen. obwohl sie em64t bzw heute intel64 unterstützen. |
...wobei AFAIK die Core 2 Duos intern wieder andere Befehlssätze benutzen. Stand mal in der c't. Hach, es macht so Spaß, zu fachsimpeln.
Reinhard Kern hat folgendes geschrieben: |
Hallo,
das sind auch verschiedene Themen. Im intel werden die Maschinenbefehle (und die Mnemonics dazu) abgehandelt, aber nicht, wie man zu einer Programmstruktur kommt.
Wie man Makros schreibt oder Unterprogrammaufrufe usw., steht im Manual zum Assembler-Programm, z.B. MASM (Es gibt auch andere, und die sind auch nicht unbedingt kompatibel). Dafür steht im MASM32-Manual nur eine Übersichtsliste der Assembler/Maschinenbefehle.
Nur beides zusammen ergibt einen Sinn.
Gruss Reinhard |
Und drittens die APIs des jeweiligen Betriebssystems (Interrupts auf MS-DOS etc.) bzw. des BIOS (auch hier Interrupts).
Also in Kürze: Die Intel-Manuel sagt dir: Es gibt einen Befehl namens int. Die MASM32-Manuel sagt dir: Du kannst ihn daundda einsetzen. Die Interrupt-/API-Doku sagt: Wenn du 15h dran hängst, kommt Text raus. 
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
g1o2k4 
      
Beiträge: 493
|
Verfasst: Mi 06.08.08 19:21
Reinhard Kern hat folgendes geschrieben: | g1o2k4 hat folgendes geschrieben: | hallo
...
aber es gibt echt keine guten bücher zur x86 asm programmierung.
ich hab keine lust das intel reference manual zu wälzen. |
Hallo,
das sind auch verschiedene Themen. Im intel werden die Maschinenbefehle (und die Mnemonics dazu) abgehandelt, aber nicht, wie man zu einer Programmstruktur kommt.
Wie man Makros schreibt oder Unterprogrammaufrufe usw., steht im Manual zum Assembler-Programm, z.B. MASM (Es gibt auch andere, und die sind auch nicht unbedingt kompatibel). Dafür steht im MASM32-Manual nur eine Übersichtsliste der Assembler/Maschinenbefehle.
Nur beides zusammen ergibt einen Sinn.
Gruss Reinhard |
da hast du natürlich recht. ich hab ja shcon geschrieben, dass ich nichts suche was mir nur die befehle erläutert, sondern ein buch, das assembler wie eine programmiersprache erklärt. also syntax, semantik, struktur von programmen und was da noch alles zugehört um performance optimierte programme zu schreiben.
und das sollte dann halt am beispiel von 32bit assembler wie z.b. für einen pentrium IV.
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Do 07.08.08 10:18
Also ich denke komplette komplexe Programme in einem reinem Assembler zu schreiben macht nur wirlklich sinn, wenn man zu viel zeit und die verarbeiten eines Buttondrückers 10ms schneller sein soll. Meiner Meinung nach lohnt es nicht normale Programme komplett in Assembler zu schreiben. Der Code den ein Hochsprachenkompiler erzeugt liegt mitunter schon ziemlich dicht an dem was man auch mit Assembler machen würde. Wenn man einzelne Methoden betrachtet.
In Delphi/FreePascal hat man die Möglichkeit einzelne Methoden in Assembler zu schreiben. Besonders wenn man sich damit noch nicht gut auskennt ist das mehr als ausreichend und man kann sich langsam vortasten. Denn durch Assembler steigt natürlich das Fehlerpotential. Und zwar enorm. Um schnelle Programme zu schreiben genügen die Assemblermethoden aber auch vollkommen aus. Zu mal man auch die Möglichkeit hat die Parameter/Konstanten mit Namen anzusprechen. Man hat auf der anderen Seite nämlich mehr als genügend Möglichkeiten die Geschwindigkeit eines Programmes zu "versauen". Und da reicht alleine schon eine umständliche Struktur aus. Bzw wenn man sich bewusst ist was sein Kompiler eigentlich macht, dann kann man auch Flaschenhälse vermeiden. Und man würde sich wundern wozu Delphi alles in der Lage ist.
Pentium 4: Neuere Prozessoren zeichnen sich in erster Linie durch neuere Befehlssätze aus. So etwas wie MMX, SSE, SSE2 etc. Der Sinn hinter all diesen Befehlssätzen ist die gleichzeitige Verarbeitung von 2, 4, 8 oder 16 Werten. Um das wirklich sinnvoll nutzen zu können benötigst du auch passende Anwendungsfälle. Also so etwas wie Vektorberechnung etc. Denn parallele Verarbeitung kann der Hochsprachenkompiler nicht erfassen. Alles andere liegt da wieder an der Struktur des Codes.
Buch: Ich persönlich habe mir Assembler Ge-Packt von Joachim Rohde gekauft. Das ist aber mehr eine Referenz. Also die Befehle der einzelnen Befehlesätze etc. Zu Begin geht er zwar ein bisschen auf generelles Assembler ein. Aber das ist nicht Schwerpunkt des Buches.
Ich denke wenn du den generellen Aufbau der CPU und die Arbeitsweise verstanden hast, dann würde das schon genügen. Bzw anders gesagt. Ich denke nicht, dass man ein Assemblerbuch so aufbauen kann, dass es einem zeigt wie man komplexe Programme schreibt. Da kein Programm wie ein Anderes ist und je nachdem was man haben will kann der Code schon ganz anders aussehen. Assembler lebt ja auch davon, dass die Funktionen nicht allgemeingültig geschrieben worden sondern für einen speziellen Fall entwicklet wurden. Sonst wäre Assembler nämlich auch nicht schneller als Hochsprachen.
Alternativ kann ich dir auch die Literaturhinweise von Dr. Ing. Karl-Heinrich Schmidt anbieten. Dort ist das Skript von Prof. Dr. Klaus Wüst zu finden. Das zielt eher auf Einsteiger ab. Die Dokumente zu MMX, SSE etc sind sicher keine kompletten Übersichten der Befehle aber ich finde sie sind dort wirklich sehr anschaulich erklärt.
PS: Wenn du Grundlagen hast/kannst, dann bietet sich auch die CPU Ansicht von Delphi an. Dort sieht man erstens was Delphi für einen Code produziert und wenn man bewusst ein paar zeilen Code testet kann man auch sehen wie verschiedene Dinge gemacht werden.
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
Motzi
      
Beiträge: 2931
XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
|
Verfasst: Do 07.08.08 20:00
Also ich hab mir vor einigen Jahren das Doppelpack "Das Assembler-Buch" und "Die Assembler-Referenz" von Trutz Eyke Podschun gekauft und bin recht zufrieden damit...
_________________ gringo pussy cats - eef i see you i will pull your tail out by eets roots!
|
|
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 07.08.08 21:38
|
|
MagicRain
      
Beiträge: 154
WinXp, Win8, iOS
Delphi 7, Lazarus Pascal, Delphi 10.2 Starter, NetBeans Java
|
Verfasst: Fr 15.08.08 09:40
Das buch Assembler: Maschinennahes Programmieren von Anfang an. Mit Windows-Programmierung (Taschenbuch) ist auch sehr gut zu lesen und sehr gut beschrieben. Also es ist in meinen augen das Preis-Leistungsverhalten verhalten voll erfüllt.
|
|
Thorsten83
      
Beiträge: 191
Erhaltene Danke: 1
|
Verfasst: Sa 30.08.08 14:53
Hi,
selber Programme in Assembler zu schreiben halte ich für wenig sinnvoll, wichtiger ist wohl zu wissen, was der Compiler aus deinem Source macht und wie der Prozessor das dann verarbeitet, dadurch kann man Programme z.B. in C deutlich beschleunigen...
Mein Prof hat zu dem Thema "Computer Systems - A Programmer's Perspective" von Bryant und O'Hallaron empfohlen, ich fand das ganz gut, und nebenbei lernt man halt auch noch Assembler 
|
|
g1o2k4 
      
Beiträge: 493
|
Verfasst: Sa 30.08.08 16:44
Thorsten83 hat folgendes geschrieben: | Hi,
selber Programme in Assembler zu schreiben halte ich für wenig sinnvoll... |
als elektroingenieur assembler zu können halte ich für sehr sinnvoll
und da ich mit risc prozessoren schon angefangen habe wollte ich jetzt mal die unterschiede zu cisc sehen.
|
|