Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 5 reacties
Bron: Yasm

Assembly, een van de oudste programmeertalen, wordt tegenwoordig vaak gebruikt voor het optimaliseren van toepassingen. Yasm is ooit begonnen als tegenhanger van Nasm, maar dan uitgegeven onder de BSD-licentie. Hierbij moet worden vermeld dat ook Nasm sinds versie 2.07 uit 2009 onder deze licentie wordt uitgebracht. Het programma kan assembly-code omzetten in verschillende binaire objectformaten zoals elf, coff, Mach-O, win32 en win64. De programmeurs hebben onlangs versie 1.0.0 van Yasm de deur uitgedaan met de volgende beschrijving:

Target Audience:

Welcome to the 1.0.0 release of the Yasm Modular Assembler. Its target audience includes people who want to:
  • use a mature NASM-syntax x86 and AMD64 assembler that can target Win32, Win64, MacOS X, and Unix derivatives;
  • use a GAS-syntax assembler other than GAS;
  • have assembly source-level debugging using either DWARF2 or CodeView 8.0 (Visual Studio 2005 and later);
  • have a free software assembler that supports Win32/Win64 structured exception handling (SEH) and ELF32/ELF64 thread local storage (TLS);
  • target the latest AMD XOP/FMA4/CVT16 or Intel AVX instruction sets;
  • have a free assembler highly integrated into the Visual Studio 2010 IDE;
  • keep track of Yasm's progress in terms of stability and feature set;
  • contribute to Yasm development from a new release.
Changes from 0.8.0 to 1.0.0:
  • Add GAS preprocessor (fixes #79, contributed by Alexei Svitkine).
  • Add Visual Studio 2010 special frontend, vsyasm (suggested by Brian Gladman).
  • Add support for AMD XOP, FMA4, and CVT16 instructions (replacing SSE5).
  • Add support for %scope and %endscope NASM macros (contributed by Mathieu Monnier).
  • Add support for %{x:y} parameter list expansion in NASM preprocessor (contributed by Mathieu Monnier).
  • Fix _GLOBAL_OFFSET_TABLE_ (reported by Mark Charney, Intel).
  • Add support for ELF64 PC-relative relocations and latest ELF32 relocation types.
  • Add support for ELF tlsdesc, tlscall, pltoff, gotplt, gotoff special symbols.
  • NASM preprocessor license has been changed to 2-clause BSD.
  • Various bugfixes in TASM syntax support.
  • Many other bugfixes (including #173, #175, #177, #178, #184, #185, #186, #187, #188, #189, #190, #191, #193, #198).
Versienummer:1.0.0
Releasestatus:Final
Besturingssystemen:Windows 7, Windows 2000, Linux, BSD, Windows XP, DOS, macOS, OS/2, Windows Vista
Website:Yasm
Download:http://www.tortall.net/projects/yasm/wiki/Download
Licentietype:Voorwaarden (GNU/BSD/etc.)

Updategeschiedenis

Moderatie-faq Wijzig weergave

Reacties (5)

"Assembly, een van de oudste programmeertalen"

Assembly is toch soort van 'direct computer gestuurde imput' progammeren of heb ik dit verkeerd onthouden? Een taal die zeg maar 'voor' C-e.d. ligt?

[Reactie gewijzigd door himlims_ op 13 april 2010 09:11]

Alle programeertalen komen uiteindelijk op assembly uit. Als jij iets in c programeert dan word dat door de compiler omgezet naar assembly. C# word eerst omgezet naar een een bestand voor de .NET interpreter die as tussenlaag het weer omzet naar Assembly.

Assembly zijn de ruwe instructies, die eigenlijk direct door de CPU kan worden gebruikt. Het is dan ook zeer snel maar ook lastig om te schrijven.

Maar je kan ook even kijken op wikipedia

[Reactie gewijzigd door DRaakje op 13 april 2010 09:17]

Bijna goed. Assembly is voor een mens leesbaar (ASCII) en wordt omgezet naar een door een machine leesbare machinecode. (Binair) Dit gebeurt wel bijna altijd 1-op-1 zodat je de processorarchitectuur (ARM, x86, 860X0) er in kan herkennen. Er zijn wel een aantal compilers die bijvoorbeeld C kunnen omzetten naar assembly. Het ontwikkelen in assembly wordt een steeds zeldzamer ambacht. Er is tegenwoordig bijna niet meer tegen optimaliserende compilers (of runtime optimalisatie zoals met Java) aan te assemblen.
Ooit heb ik het als volgt onthouden:
A voor Assembler: gewoon alles uitschrijven en 1 op 1 vertalen naar machine-code. Ook wel eerste-generatie taal genoemd.
B voor Batch/Macro verwerking: hier is al iets meer geautomatiseerd. Er schijnt zelfs een taal specificatie voor 'B' te zijn, een beetje een voorloper van C. Ook wel tweede-generatie taal genoemd.
C voor C (en diens varianten): Vormeel niet eens een 3e generatie programmeertaal, omdat er te veel (kan) worden terugevallen op assembler (en erger). Toch samen met talen als Pascal en Modula de derde generatie talen.

En dan hadden C++, C# en Objective-C natuurlijk D kunnen heten: 4e generatie talen, maar zoals C eigelijk geen derde generatie taal is, zullen liefhebbers van smaltalk, eifel en dergelijke deze talen geen 4e generatie talen durven noemen.
Cool :D Wist niet dat deze VS2010 integratie had :D dat maakt het wel super interresant..

Met NASM is het toch altijd net niet helemaal.. (als in veel custom build steps / batchscripting / etc)

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True