Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

19.03.2009, 20:21

Einstieg in Assembly; Welcher Assembler?

Hi Forum!
Vor ein paar Tagen wollte ich auf einmal ein paar Kleinigkeiten in der Assemblersprache programmieren und da hab ich sofort nach einem Tutorial gesucht.
Leider gibt es das Problem, dass manche Tutorials den NASM, andere den MASM verwenden. Ich habe es heute Mittag mal ein wenig mit MASM versucht, doch leider sehr erfolglos. Gerade habe ich ein, wie mir in den ersten 5 Minuten lesen erschien, sehr tolles Tutorial gefunden, das jedoch den NASM verwendet ("jedoch", weil ich ja ein bisschen Microsoft-Fan bin).

Weil es zwischen den einzelnen Assemblern ziemliche Unterschiede gibt, wollte ich euch fragen, welchen ihr empfehlen/nehmen könnt/würdet; am besten mit Begründung.
Falls ihr zufällig auch noch ein Tutorial habt (bitte für 32bit), dann könnt ihr es auch gleich noch mitposten, ansonsten braucht ihr nicht danach suchen, das kann ich schon selbst ;).

Danke schonmal, ich hoffe doch, dass hier schon ein paar Leute assemblyiert haben :)


P.S.: Ich weiß nicht, ob man Assembly als richtige Programmiersprache zählt (ist halt keine so Hochsprache wie C), drum korrigiert mich einfach, wenn ich den Thread am falschen Ort erstellt habe.

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

2

19.03.2009, 20:43

Brauchst du das für inline Assembler oder willst du MIkrocontroller programmieren?

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

3

19.03.2009, 21:18

Ein Assembler-Tutorial zu 32-Bit Intel Assembler findest du in unserer Link Section, ist allerdings ein E-Book. Ich benutze immer NASM, hatte jedoch keine großen Probleme einige externe Assembler Module in Inline Assembler zu portieren (was bei VC ja dann MASM ist). Wenn du NASM kannst und die Unterschiede kennst und/oder logisch denken kannst sollte es kein Problem sein, beide Syntaxen (plural richtig gebildet?) zu lernen. Zum lernen würde ich auf jedenfalls NASM benutzen, da man bei der Verwendung von externen Modulen doch noch ein paar dinge mehr lernt, gerade über den Linker.

Assembler muss man heutzutage nicht mehr können um z.B. Code zu Optimieren, meistens kann das der Kompiler schon sehr gut (in manchen Fällen ist es trotzdem hilfreich). Aber um zu verstehen, wie die CPU funktioniert und was der Kompiler eigentlich wann für einen Code erzeugt ist es sehr praktisch, wenn man Assembler kann. Sollte man also auch heute noch drauf haben.

Socke

4

19.03.2009, 22:04

Zitat

Brauchst du das für inline Assembler oder willst du MIkrocontroller programmieren?

Ich vermute mal keine Mikrocontroller :?

Ok, ty, dann schau ich noch nach dem Tutorial und verwende dann einfach den, zu dem es die besseren Tutorials gibt (wird dann wahrscheinlich NASM sein).

EDIT:
@Faule Socke: Ich hab gerade nach dem von dir empfohlenen ebook geschaut, das war ja zufällig das, das ich auch gefunden hatte :lol:

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

5

19.03.2009, 22:59

dennoch, ich denke, um in assembler einzusteigen, ist ATmega8 super. der befehlssatz ist schön übersichtlich. von der inline-assembler machst, dann ist es ja wohl x86, und das ist denk ich schon etwas anderes...
<< an dieser Stelle ist eine Signatur verstorben >>

6

20.03.2009, 11:41

Zitat

ATmega8

Danke, könnte ich mir auch mal noch anschauen.


Weiß denn jemand, wie ich den NASM verwende? Beim MASM habe ich die .asm-Datei, die assembliert werden sollte, bei der Verknüpfung unter "Ziel" hinten angehängt.
Auf der NASM Seite (und bei allen Tutorials) steht nur sowas:

Quellcode

1
nasm -f elf myfile.asm

Was soll ich damit jetzt tun?

Edit:
Wie so oft merkt man den Fehler erst, wenn man ihn hier ins Forum postet... (bin zum Glück nicht der einzigste :) )
Der NASM funktioniert genau gleich, der Fehler lag bei mir.

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

7

20.03.2009, 20:38

Mach aber vorsichtshalber das hier:

Quellcode

1
nasm -f win32 datei.asm -o datei.obj


Damit legst du das ausgabeformat fest, mit dem der MS Linker klar kommt und du gibst noch den Name der Ausgabedatei an.

Socke

Werbeanzeige