Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Assembler ::  Assembler lernen CPU Architekturen verstehen1?     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
CDiscoverer
Unregistrierter




Beitrag CDiscoverer Unregistrierter 09:27:47 01.02.2012   Titel:   Assembler lernen CPU Architekturen verstehen1?            Zitieren

Hallo Leute,

ich würd mich gern bischen in den lowlevel der Softwareetnwicklung einarbeiten. da würde ich gern bischen Assembler verstehen und lernen. Die Frage ist nun welches Assembler? Für welchen CPU? Was macht Sinn? Analog hierfür würde ich mich auch gern etwas tiefer in CPU Architekturen einarbeiten, dies sollte aber nich zu speziell für einen CPU Typ sein... hmmm

Was meint ihr1?

Grüße
freecrac
Unregistrierter




Beitrag freecrac Unregistrierter 10:31:30 01.02.2012   Titel:   Re: Assembler lernen CPU Architekturen verstehen1?            Zitieren

CDiscoverer schrieb:
Hallo Leute,

ich würd mich gern bischen in den lowlevel der Softwareetnwicklung einarbeiten. da würde ich gern bischen Assembler verstehen und lernen. Die Frage ist nun welches Assembler? Für welchen CPU? Was macht Sinn? Analog hierfür würde ich mich auch gern etwas tiefer in CPU Architekturen einarbeiten, dies sollte aber nich zu speziell für einen CPU Typ sein... hmmm

Was meint ihr1?

Grüße

Es gibt aber keine Assembler-Sprache die universell für mehrere CPU-Architekturen geeignet ist, sondern jede CPU-Architektur hat unterschiedliche Befehle, die allenfalls eine gewisse Ähnlichkeit aufweisen. Der Sinn richtet sich danach was du erreichen möchtest. Beruflich wird man Assembler kaum noch benötigen, so das Assemblersprache heute meistens nur noch als Hobby eine Verwendung findet. Sehr tief kann man mit Assembler heute aber auch nicht beispielsweise in die X86er-CPU-Architektur eindringen, da auch die von einem Assembler erzeugten Opcodes bei der Ausführung intern von den CPUs noch weiter in Micro-Ops zerlegt und ggf. umsortiert werden. Darauf hat man so gut wie gar keinen Einfluss, man kann höchstens die verwendeten Opcodes dafür sinnvoll plazieren, so das die internen Ausführungseinheitten die Opcodes optimal und paralell verarbeiten können.

Weit verbreitet ist die x86-Architektur. Opcodes die beispielsweise für einen 80386er entwickelt wurden sind auch auf modernen PCs mit aktuellen 64 Bit-CPUs ausführbar, da diese CPUs zu den Vorgängern kompatibel sind. So kann man dort ebenfalls auch noch ältere 16 Bit-Anwendungen zur Ausführung bringen, da auch die 64 Bit-x86 CPUs immer noch im 16 Bit-Mode starten und dann erst von einem OS, oder einer Anwendung in den 32 Bit-Mode oder dem 64 Bit-Mode geschaltet werden. Wenn man x86-Architektur kennenlernen möchte, dann könnte man mit kleinen 16 Bit-Anwendungen um ein erstes Verständniss für diese x86er-Architektur zu bekommen.

Dirk
blarg
Unregistrierter




Beitrag blarg Unregistrierter 16:31:19 01.02.2012   Titel:              Zitieren

x86 ist nicht unbedingt das beste Beispiel. RISC-Architekturen (ARM, AVR, MIPS) sind für den Anfang möglicherweise geeigneter.
x86_hat_jeder_zuhaus
Unregistrierter




Beitrag x86_hat_jeder_zuhaus Unregistrierter 16:40:09 01.02.2012   Titel:              Zitieren

blarg schrieb:
x86 ist nicht unbedingt das beste Beispiel. RISC-Architekturen (ARM, AVR, MIPS) sind für den Anfang möglicherweise geeigneter.

mag sein, x86 is aber weit verbreite und einfach zugänglich.
otto8
Unregistrierter




Beitrag otto8 Unregistrierter 16:48:53 01.02.2012   Titel:              Zitieren

x86_hat_jeder_zuhaus schrieb:
blarg schrieb:
x86 ist nicht unbedingt das beste Beispiel. RISC-Architekturen (ARM, AVR, MIPS) sind für den Anfang möglicherweise geeigneter.

mag sein, x86 is aber weit verbreite und einfach zugänglich.

:live:
mfq
Unregistrierter




Beitrag mfq Unregistrierter 07:16:21 03.02.2012   Titel:              Zitieren

blarg schrieb:
x86 ist nicht unbedingt das beste Beispiel. RISC-Architekturen (ARM, AVR, MIPS) sind für den Anfang möglicherweise geeigneter.
Würde ich unterschreiben.

Man muss den Anfang ja auch nicht unbedingt auf echter Hardware machen. Der GDB enthält einen ARM-Simulator mit dem man schonmal einiges machen kann. Dazu holt man sich dann eine Referenzkarte zum Befehlssatz und kann eigentlich schon ein bisschen rumspielen. Wenn du die GNU-Toolchain nicht selbst bauen willst, bekommst du unter gnuarm.com auch (etwas ältere) Binaries.

ARM ist mindestens ebenso verbreitet wie x86 und die Hardware gibt es zu vernünftigen Preisen, entweder als Eval-Board (von kleinen ARM7- oder Cortex-M3-Boards bis hin zu fetten Pandaboards) oder in zig anderen Geräten.

Außerdem im Vergleich zu x86 eine recht schöne Architektur. MIPS finde ich auch noch ganz ansprechend, da findet man auch viel Lehrmaterial für. Echte Hardware (in hackbarer Ausführung) ist da aber weniger leicht zu bekommen.

Auch ganz interessant sind die AVR-Dinger. Ist eine 8-Bit-RISC-Architektur für Mikrocontroller, für die es aber sehr gute, modifizierungsfreundliche Hardware zu niedrigen Preisen gibt, z.B. die Arduinos ab 20-30 Euro. Leistungsmäßig natürlich eher beschränkt.

Ich würde ARM oder AVR nehmen, je nach Leistungsanforderung. Zumindest dann, wenn du mit den erworbenen Kentnissen auch wirklich was spaßiges machen willst. x86 auf dieser Ebene ist imho ziemlich hässlich.
knivil
Mitglied

Benutzerprofil
Anmeldungsdatum: 11.02.2009
Beiträge: 4495
Beitrag knivil Mitglied 10:47:21 03.02.2012   Titel:              Zitieren

Zitat:
ARM ist mindestens ebenso verbreitet wie x86 und die Hardware gibt es zu vernünftigen Preisen
Haha, Arm ist weit vor x86. Der Durchschnittsmensch sieht das nur nicht auf den Mediamarktplakaten.
Zitat:
ARM-Kunden lieferten alleine im vergangenen Quartal 1,2 Milliarden Handy-Chips (+10 Prozent) und 1 Milliarde Chips für Unterhaltungselektronik und Embedded-Produkte (+40 Prozent).
Quelle: http://www.heise.de/newsticker/meldung/ARM-meldet-Umsatz-und-Gewinnwachstum-1425192.html

_________________
If it were not for laughter, there would be no Tao.
Sie können einen Beitrag nicht so schnell nach Ihrem letzten absenden, bitte warten Sie einen Augenblick.
Scheppertreiber
Mitglied

Benutzerprofil
Anmeldungsdatum: 16.05.2008
Beiträge: 1426
Beitrag Scheppertreiber Mitglied 11:24:48 03.02.2012   Titel:              Zitieren

AVR ist gerade mein Opfer ...

Einstieg für unter 100 Eus. Gnu Compiler/Assembler gibt's für lau. Übersichtlich,
überschaubar und man hat schnell etwas das funktioniert.

Erstaunlich was man zB in einem ATTiny2313 mit 2 k Programm und 128 Byte RAM
so unterbringen kann :o)
Vergleichbar?
Unregistrierter




Beitrag Vergleichbar? Unregistrierter 12:01:56 03.02.2012   Titel:              Zitieren

Wie war das noch mit Äpfeln und Birnen?
Scheppertreiber
Mitglied

Benutzerprofil
Anmeldungsdatum: 16.05.2008
Beiträge: 1426
Beitrag Scheppertreiber Mitglied 12:04:15 03.02.2012   Titel:              Zitieren

Vergleichbar? schrieb:
Wie war das noch mit Äpfeln und Birnen?


Pressen und Most daraus machen ...
zeusosc
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.12.2006
Beiträge: 745
Beitrag zeusosc Mitglied 21:17:58 03.02.2012   Titel:              Zitieren

.. ich habe auch bestimmt noch zig Mega8 bis 32iger und tiny's bei mir zuhause rumgammeln... :)

Für den Einstig von asm kann man sich ja die IDE von ATMEL herunterladen. Der hat auch einen Debugger/Simulator der auch die Status der IO Pins mit angibt und etc,...

_________________
Der Contrapart in einer Diskussion zu sein, heißt nicht das dieser Standpunkt
der eigene sein muss! ;)
abc.w
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2008
Beiträge: 1364
Beitrag abc.w Mitglied 00:51:49 04.02.2012   Titel:              Zitieren

zeusosc schrieb:
.. ich habe auch bestimmt noch zig Mega8 bis 32iger und tiny's bei mir zuhause rumgammeln... :)

Na toll, rumgammeln... ich habe bei mir daheim auch so 5 bis 10 ATmegas inzwischen auf Lochrasterplatinen zusammengefrickelt: Selbstbau-Taschenrechner, -Frequenzzähler, -EPROM-Programmiergeräte, -DDS-Synthesizer :p

_________________
E = int * char^2
C/C++ Forum :: Assembler ::  Assembler lernen CPU Architekturen verstehen1?   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.