Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Assembler » Assembler lernen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.03.2010, 12:11 Uhr
fr33g



Hey Leute,
ich würde gerne Assembler lernen.
Ich mache im Moment C++ und Qt und würde eben auch gern Assembler können.
So also welchen ist mir eigentlich erst mal egal, dachte vll an NASM oder so.
Problem ich habe auf meinem Rechner Windows 7 64 Bit.
Kennt jemand dafür ein Buch oder Tutorial um das ganze auf 64 Bit basis zu lernen.
Danke schonmal

Gruß freeG
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.03.2010, 20:13 Uhr
Hans
Library Walker
(Operator)


Hi,

mit aktuellen Buchtiteln kann ich nicht dienen, und bei Assembler ist es am Anfang auch einfacher, wenn man mit 8 oder 16-Bit hantiert. Denn um bestimmte Konzepte oder Operationen wirklich zu verstehen, sollte man sie auch mal von Hand nachrechnen d.h. mit dem Bleistift auf Papier durchführen. Und das geht mit 8 oder 16-Bit Zahlen wesentlich einfacher, als mit 64 Bit Zahlen. Wenn Du die Sache, beispielsweise eine Addition auf Registerebene verstanden hast, ist es egal, ob die Zahlen 8 Bit lang sind, oder 8*8 Bit haben.
Interessant wird der Unterschied dann erst wieder, wenn man es mit grossen Datentypen oder Datenstrukturen zu tun bekommt, bzw. bei der Speicherverwaltung. Aber das wird man bei PC-Software wohl kaum noch in Assembler machen, es sei denn man arbeitet an Compilern.
Anders sieht es bei Microcontrollern aus: aber da verwendet man ja auch noch 8-Bit Controller, weil die für bestimmte Aufgaben einfach ausreichen. Aber das ist ein anderes Thema.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.03.2010, 21:50 Uhr
fr33g



Mhh also 16 bit kann ich ja mit der DOSBox auf meinem Win 7 64-Bit machen, aber 32 geht ja au schon net mehr.
Ok zum Einstieg ist dann 64Bit wohl zu hoch gegriffen, also würdest du mir erst mal empfehlen 16 bit und das mit der DOSBox starten?

Und wie kann ich dann auf 64-Bit umsteigen, dadrüber hab ich noch gar nix gefunden nur 32-Bit...

Danke schonmal
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.03.2010, 06:12 Uhr
Hans
Library Walker
(Operator)


Moin,

richtig, die ersten Schritte kannst Du in der DOS-Box machen. Weitere eventuell auch mit Hilfe eines Inline-Assemblers, wie es sie in manchen Hochsprachen gibt.

Zur Programmierung von 64-Bit Prozessoren kann ich allerdings nichts sagen, weil ich keinen Rechner mit einem solchen zur Verfügung habe. Wenn Du dazu mehr wissen willst, wirst du wohl auf die Dokumentationen von Intel und AMD zurück greifen müssen, wenn sich in aktuellen Lehrbüchern nichts dazu findet.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.03.2010, 21:37 Uhr
fr33g



Also ich habe jetzt herausgefunden bzw gelesen, dass 32Bit Programme auch au nem 64Bit Windows laufen, das ist ja schonmal sehr gut, dann kann ich erst mal 16Bit machen und danach 32.

Kennst du vll gute Tutorials für 16Bit und am besten für den FASM-Assembler?

Hab mich nämlich langem hin und her für den entschieden;-)

Danke

gruß freeG
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.03.2010, 14:02 Uhr
Pablo
Supertux
(Operator)


Also, ich halte einfach so "Assembler" zu lernen für extrem sinnlos. Assembler != Assembler und wenn man die Architektur nicht genug/genau kennt, wird damit nur Frust ernten.

Ich denke, solange man nicht systemnah arbeitet, gibt es keinen Grund, die Zeit damit zu verschwenden. Wer aber dennoch daran interessiert ist, sollte lieber anders vorgehen: ich würde eher mir einen billigen Mikrocontroller kaufen, wo ich LEDs, kleine Motoren oder was weiß ich ansprechen kann. Oder für jemanden, der vielleicht ein bisschen ausgeben will, ein kleines embedded system (wie Gumstix) kaufen und damit "rumspielen".

Assembler lernt man am besten, wenn man die Architektur kennenlernt und dieses Wissen einsetzt. Zu wissen, wie man den ADD oder SHIFT oder SCHLAGMICHTOT Befehl verwendet ist nur Handwerk. Am besten sollte man wissen, wann ein SHIFT besser geeignet ist als eine Addition, usw. *Das* kann man nur einsetzen, wenn man die Architektur gut kennt.

Deshalb lernt man am besten mit "kleinen" Maschinen (da kommen wir wieder zu den Mikrokontrollern/Gumstix): einen kleinen bootloader schreiben, sein eigenes Betriebssystem schreiben (gerne darf es am Anfang nur "Hallo Welt" ausspucken), oder was weiß ich. So lernt man die Architekturen lernen und somit Assembler (wie gesagt, das tippen von Befehlen wie ADD, SUB usw. ist nur Handwerk).

Ich empfehle deshalb dieses Buch: ARM System Developer's Guide.


Die ARM Architektur ist für Anfänger super geeignet, da sie modern und leicht ist, man lernt am Anfang wie überhaupt die Architektur funktioniert und Schritt für Schritt lernt man damit umzugehen. Gumstix ist eine tolle Plattform um das gelernte auszuprobieren.

Und vergiss Tutorials, das ist Zeitverschwendung, damit lernt man gar nichts.

//edit: dank google books: klick hier

kleine Vorschau, wie das Buch aufgebaut ist.

---------------
Edit: "URL hinter einem Link versteckt"
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 16.03.2010 um 01:52 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.03.2010, 02:02 Uhr
Hans
Library Walker
(Operator)


Hi,


Zitat von fr33g:
Also ich habe jetzt herausgefunden bzw gelesen, dass 32Bit Programme auch au nem 64Bit Windows laufen,

Ja natürlich, sonst müsste man beim Umstieg von einem 32-Bit System zu einem 64-Bit System auch alle seine Programm neu kaufen, und das würde extrem teuer werden. Ausserdem dürfte Dir auch bekannt sein, das noch längst nicht jedes Programm in einer 64-Bit Version zu haben ist.


Zitat:
das ist ja schonmal sehr gut, dann kann ich erst mal 16Bit machen und danach 32.

Wenn Du dem Vorschlag von Pablo folgst, kann es sogar sein, das Du erst mal mit 8 Bit anfängst...


Zitat:
Kennst du vll gute Tutorials für 16Bit und am besten für den FASM-Assembler?

Von diesem Assembler hab ich bisher noch nicht gehört, also kann ich dazu nix sagen.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
16.03.2010, 12:03 Uhr
ao

(Operator)


Hallo, mal ganz zurück zum Anfang: Was willst du mit Assembler anfangen? "Einfach nur können" - das ist Unfug wie Pablo schon sagte.

Assembler-Programmierung ist sehr umständlich, selbst im Vergleich mit C, und im Vergleich mit "richtigen" Hochsprachen sowieso. Außerdem hat jede Prozessor-Familie ihre eigene Assemblersprache, und das Wissen darüber ist nur sehr begrenzt portabel.

Es gibt daher nur noch ganz wenige Ecken, in denen Assembler angewendet wird, und ich kann mir kaum vorstellen, dass du als Neuling gerade auf solche Ecken gestoßen bist.

Anders liegt der Fall bei Mikrocontrollern und DSPs, und hier möchte ich dem Pablo mal widersprechen:


Zitat von Pablo:
Deshalb lernt man am besten mit "kleinen" Maschinen (da kommen wir wieder zu den Mikrokontrollern/Gumstix)


Die Gumstix-Prozessoren würde ich nicht als "kleine Maschinen" bezeichnen, mit 32 Bit und bis zu 600 MHz sind das schon echte Brecher. Die verwendet man normalerweise nur mit Betriebssystem (Embedded Linux oder Windows CE) und programmiert sie auch nicht in Assembler.

OK, OK, irgendwer muss auch die Betriebssysteme schreiben. Aber das erledigen Experten und keine Anfänger nach zwei Monaten Übung mit Qt (nix gegen dich, fr3gg!).

Eine "kleine Maschine" ist für mich ein ATmega oder ATtiny, oder ein PIC, und hier macht Assembler-Programmierung unter Umständen auch durchaus Sinn. Trotzdem ist auch hier der Einstieg nicht trivial, und wenn du kannst, such dir Hilfe vor Ort. Das ist zehnmal effizienter als alles selber zusammenzulesen.

Dieser Post wurde am 16.03.2010 um 12:03 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
17.03.2010, 14:49 Uhr
Pablo
Supertux
(Operator)


@ao: das Attribut "klein" war in der Tat falsch gewählt, ich hätte vielleicht "einfach" nehmen sollen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
23.03.2010, 20:55 Uhr
fr33g



Ja ich wollte halt einfach Assembler lernen um zum Beispiel vll mal nen eigenes kleines Hobbybetriebssystem zu schreiben, oder Crack Mes zu lösen...

Aber ok...da will ich wohl für den Anfang zu viel
Dann bleibe ich erst mal bei C++ und Qt und lerne fleißig weiter

Auf jeden Fall vielen Dank

Gruß freeG
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Assembler ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: