| Autor |
Nachricht |
CDiscoverer
Unregistrierter
|
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
|
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
|
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
|
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
|
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. |
|
|
|
|
 |
mfq
Unregistrierter
|
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
|
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
|
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 |
|
|
|
 |
Vergleichbar?
Unregistrierter
|
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
|
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
|
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
|
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 |
_________________ E = int * char^2
|
|
 |