[Assembly] Welke assembler?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Kun
  • Registratie: December 2008
  • Laatst online: 25-09 10:49
Sinds kort ben ik bezig om mezelf Assembly aan te leren en ik ben benieuwd welke assembler andere tweakers gebruiken en waarom.

Tot nu toe heb ik met twee verschillende assemblers getest, MASM en FASM. Ik heb van een aantal assemblers wat min- en pluspunten op een rijtje gezet en was benieuwd naar jullie mening over deze en/of andere assemblers.

MASM
- Alleen voor Windows
+ Integratie met Visual Studio
+ Ontwikkeld door Microsoft

FASM
- Ontwikkeld door 1 persoon
+ Vrijwel geheel compatible met NASM

NASM
+ Veel boeken en documentatie gebruiken NASM

GNU AS
- Standaard AT&T syntax
- Not for humans (dit lees ik vaak, niet zelf getest dus misschien met de Intel syntax niet meer relevant)
+ Veel gebruikt icm GCC C compiler
+ Actieve development

Ik heb veel gezocht op het internet naar de wat andere de "beste" assembler vinden, maar dat zijn vaak hele oude topics vandaar dit topic :).

Mijn wensen/eisen voor de assembler zijn:

- Ondersteuning voor meerdere besturingssystemen
- Ondersteuning voor de nieuwste instructiesets van Intel (AVX2 en BMI1/BMI2)
- Multi-pass assembler
- Intel syntax

Edit: Op verzoek van RobIII heb ik mijn wensen/eisen opgenomen in deze post, echter hoor ik ook graag unique selling points van specifieke assemblers waar ik wellicht nog niet eens aan gedacht had.

[ Voor 18% gewijzigd door Kun op 21-10-2015 09:25 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Kun schreef op dinsdag 20 oktober 2015 @ 19:52:
Ik heb veel gezocht op het internet naar de wat andere de "beste" assembler vinden, maar dat zijn vaak hele oude topics vandaar dit topic :).
"De beste" is altijd subjectief; het is nogal afhankelijk van je eigen voorkeuren, wensen en vooral eisen en dat is ook precies de reden waarom we hier een FAQ over Welke programmeertaal moet ik leren? hebben; nu ben je dus wel uit de taal (assembly) maar ben je nog op zoek naar "de beste". En dan gaat die FAQ dus net zo goed op. Ik lees in je topic echter nergens de eisen en/of wensen terug die je hebt. En dan krijg je dus precies wat die FAQ beschrijft: jan-en-alleman gaat hier zijn/haar favorietje roepen (meestal zonder onderbouwig: "XASM!!1") en daar heb je zo weinig aan ;)

Heb je hier al eens naar gekeken? Daar staat vanalles tussen (o.a. het OS, FOSS type, x86-64 ondersteuning en, niet geheel onbelangrijk, of het nog in actief development is).

Ik wil je vriendelijk verzoeken je topicstart (middels de wijzig-link rechtsbovenaan je post) aan te passen en te voorzien van minimaal eisen en wensen die je stelt wil dit topic nog enig nut hebben. Verzandt dit topic in ononderbouwd gekwaak van assemblers dan staat hier alsnog zo een slotje op ;) Een gewaarschuwd poster telt voor twee ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Elijan9
  • Registratie: Februari 2004
  • Laatst online: 08-10 15:52
Gnu AS ondersteunt zowel de AT&T als de Intel syntax, dit is in te stellen met -msyntax=intel en/of -mmnemonic=intel. Echter, de Gnu Assembler heeft geen preprocessor voor speciale macro's e.d. wat ik een groot nadeel vind. (Wat men bij de Linux kernel bijvoorbeeld doet, is GCC aanroepen als preprocessor voor alle assembly files.)

MASM valt af als je meerdere besturingssystemen wilt ondersteunen. ;)

Voor de rest liggen de verschillen (naar mijn mening) vooral in de mogelijkheden van de preprocessor. Als je al ervaring hebt met FASM is dat misschien makkelijker, omdat je daar alles al van weet. Zelf vind ik de mogelijkheden van NASM erg prettig en uitgebreid, maar ik ken FASM amper, dus ik weet niet wat daar de mogelijkheden/alternatieven zijn...

De preprocessor-mogelijkheden van NASM vind je hier: http://www.nasm.us/xdoc/2.11.08/html/nasmdoc4.html
De preprocessor-mogelijkheden van FASM vind je hier: http://flatassembler.net/docs.php?article=manual#2.3

War is when the young and stupid are tricked by the old and bitter into killing each other. - Niko Bellic


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:35
Elijan9 schreef op woensdag 21 oktober 2015 @ 11:46:
Wat men bij de Linux kernel bijvoorbeeld doet, is GCC aanroepen als preprocessor voor alle assembly files.
cpp, de C preprocessor, bedoel je waarschijnlijk? Dat kan je zelf ook doen.
MASM valt af als je meerdere besturingssystemen wilt ondersteunen.
Heeft wel de beste support for preprocessing (de M stond oorspronkelijk voor "Macro").