A NASM 3.00 már támogatja az Intel APX és AVX10 utasításkészletet, valamint teljesen megújult előfeldolgozó rendszert kapott

A Netwide Assembler, közismertebb nevén NASM, elérte a 3.00 verziószámot, amely az egyik legátfogóbb fejlesztésének számít az elmúlt években. Ez a kiadás alapjaiban modernizálja az assembler működését, új utasításkészletek, fejlettebb előfeldolgozó-funkciók és kiterjesztett platformtámogatás bevezetésével. A fejlesztések célja, hogy a kódolás hatékonyabb, a szintaxis rugalmasabb, a hibakezelés pedig megbízhatóbb legyen – mindezt a modern architektúrák igényeihez igazítva.

A NASM 3.00 már támogatja az Intel APX és AVX10 utasításkészletet, valamint teljesen megújult előfeldolgozó rendszert kapott

Új utasításkészletek érkeznek

A NASM 3.00 legfontosabb újdonsága az APX és AVX10 utasításkészlet támogatásának megjelenése, amelyek révén a programozók kihasználhatják az új generációs processzorok bővített regisztereit és optimalizált párhuzamos feldolgozási képességeit. A frissítés ezzel együtt kiegészítő utasításokat is bevezetett, ezzel tovább növelve a NASM rugalmasságát a modern x86-64 architektúrákon. Az előfeldolgozó rendszer jelentős fejlődésen ment keresztül: új függvények, például a %b2hs(), %chr(), %depend(), %find(), %findi(), %hs2b(), %null(), %ord(), %pathsearch() és %realpath() segítik a feltételes logika, a karakterkezelés és az útvonal-ellenőrzés automatizálását. Az új %note direktíva lehetővé teszi megjegyzések elhelyezését a listafájlban diagnosztikai üzenet nélkül, míg az %iffile és %ifdirective parancsok a fájlok vagy direktívák létezését képesek ellenőrizni fordítás közben.

Kényelmi fejlesztések

A NASM 3.00 kiadás több olyan hibát javít, amelyek korábban összeomlásokat vagy érvénytelen memóriaműveleteket okozhattak. Finomították például a $-szimbólumok kezelését, a szegmensválasztó hivatkozások generálását, valamint az „obj” formátum kódolását, ezáltal a fordítási folyamat megbízhatóbbá vált. Újdonságként megjelent a [DOLLARHEX] direktíva, amellyel letiltható a korábban elterjedt, de mára elavult $-hexadecimális jelölés. A parancssori súgó is teljesen megújult: a -h opció kimenete átláthatóbb, tematikus felépítést kapott, így gyorsreferenciaként is könnyebben használható. Emellett a 64 bites módban alkalmazott „DEFAULT ABS” beállítás mostantól figyelmeztetést ad, mivel a jövőben „REL”-re módosulhat, az FS: és GS: szegmensekhez kötött memóriaműveletek alapértelmezése pedig tetszőlegesen konfigurálható.

Makrók, új direktívák és korszerűsített dokumentáció

A fejlesztők több új eszközt is beépítettek, amelyek egyszerre növelik a rugalmasságot és a fejlesztői élményt. Megjelent a vtern makrócsomag, amely a VPTERNLOG utasítások vezérlő bitjeinek generálását egyszerűsíti, valamint frissült a masm makrókészlet az x87 regiszter-szintaxis támogatásával. A Mach-O backend új build_version direktívát kapott, míg az „obj” formátum mostantól lehetővé teszi, hogy egy szegmens több csoporthoz is tartozzon – Ez különösen hasznos újítás az OS/2 rendszerekhez. Az új -LF parancssori opció segítségével felülírhatók a [LIST -] direktívák, a DWARF hibakeresési információk generálása megfelel a szabványoknak, és immár a válaszfájlok egymásba is ágyazhatók. A forrásból történő fordításhoz készült dokumentációt teljes egészében újraírták, így a NASM most még fejlesztőbarátabb és jobban átlátható eszközzé vált.

Akiket érdekel a Netwide Assembler új kiadása, azok megtalálhatják a legfrissebb verziókat a NASM.us weboldalon. A kiadási megjegyzések itt olvashatóak

Gábor a Pingvinbázis alapítója és főszerkesztője, több mint 20 éves tapasztalattal rendelkezik a Linux rendszerek és az Open Source szoftverek területén. Jártas a Python, és a PHP nyelvben, valamint a BASH scriptelésben is.