Assembler NASM oder MASM?

07/20/2012 06:25 lolix3#1
Guten Tag,

da ich mich in der nächsten Zeit mit der Programmierung von Assembler auseinander setzen möchte, und dass auf x84 und x64 bit Versionen, habe ich folgende Frage an die ASM Coder.

Womit soll ich Arbeiten, MASM oder NASM oder ganz etwas anderes?
Ich hab schon gelesen, dass nur NASM über x64 Können verfügt, stimmt das so?

Hilfe wäre nett..

Greetz
07/20/2012 10:40 Nightblizard#2
Das kommt ganz auf den persönlichen Geschmack an, denn wirklich unterscheiden tuen die sich nicht wirklich. Ich kann dich also beruhigen, mit MASM kannst du auch x64 Programmcode schreiben.

Die größten Unterschiede sind in der NASM Manual aufgelistet.
[Only registered and activated users can see links. Click Here To Register...]
07/20/2012 12:02 Tyrar#3
grundsätzlich unterstützen beide assembler x86 und x64!
der unterschied liegt hauptsächlich in der syntax.

MASM:
Code:
mov eax, dword ptr ds:[0xFFFFFFFF]
NASM:
Code:
mov eax, dword [ds:0xFFFFFFFF]
das ergebnis ist allerdings das selbe.

ich persönlich bin nasm user, aber wie nightblizard schon sagt ist das geschmacksache
07/20/2012 16:43 lolix3#4
Vielen Dank euch beiden,

dann hab ich noch eine Frage, wie sollte ich anfangen zu lernen?
Könnt ihr mir dort ein Lehrbuch empfehlen für NASM und wenn es geht auf Deutsch?

Greetz
07/20/2012 18:45 tnd0#5
Wenn man sich wirklich mit assembler beschäftigen möchte geht das am besten mit inline assembly von deiner bevorzugten hochsprache. da hast du dann schon eine IDE und i.d.r. einen debugger dabei.
07/21/2012 06:49 Tyrar#6
am besten lernt man meiner meinung nach, wenn man code in einer sprache schreibt die man versteht und das ganze disassembliert. das ganze bezieht sich natürlich nur auf anwendungs beispiele, mindestens die grundlagen sollte man beherrschen!
07/21/2012 14:22 tnd0#7
hab mir mal irgendwann vor jahren ein assembler-buch gekauft. der totale mist. braucht kein mensch, nur die ersten 30 Seiten waren irgendwo informativ und das findet man auch ganz leicht im internet.

am besten eben in einer hochsprache wie c++ oder delphi programmieren, mit dem debugger disassemblieren und schauen was passiert, anschließend kann man auch in der visual studio und delphi IDE inline assembler code schreiben.
07/21/2012 18:52 lolix3#8
Ja, dass hatte ich auch vor, ich lerne ja nebenbei C++, schon etwas länger nun.
In C++ kann man Asm mit dem Befehl __asm benutzen oder?
Ich denke ich habe dort schon ein Buch für ASM, was ich mir kaufen werde.
Außerdem danke ich euch allen für eure hilfe.

#Closerrequest

Greetz ;>
07/21/2012 18:59 MrSm!th#9
Eben, ich hab auch erst so versucht asm zu lernen, hauptsächlich weil ich so mit Reversing anfangen wollte. War zwar ganz gut, die Syntax schonmal zu kennen, Programmabläufe hab ich danach immer noch nicht verstanden und ebenso wenig, wie man selbst Programme darin schreiben würde.

Das beste ist da echt learning by doing. Nachdem du einen Ansatz durch ein Tutorial oder ein Buch hast, selbst Programme schreiben und durchgehen (nur vorher die Optimierungen ausschalten).

#closed