Találtatok nagyítóval egy speciális kivételt az ősidőkből, amiben van valami makró, ami nem is biztos, hogy jó lesz a kérdezőnek
Ez nem egészen igaz. Ha úgy tetszik, ezek az ősidők processzorai. Akkoriban még a gyártók megfelelő eszközöket biztosítottak és mindenki azokat használta. Nem volt millió féle opensource félig elkezdett program, mint manapság. - Sokan belekezdenek valamibe, aztán kiderül, hogy túl nagy falat a feladat. ;) - Emiatt nem nagyítóval kellet keresni, mert rendelezésre állt és akkoriban ezekkel az eszközökkel dolgoztam. (Ha úgy tetszik, ősidőkből származó ősember vagyok, mert 40 éve programozok assemblerben. :-D)
A kérdező nem igazán fogja az assembly mibenlétét. Az assembley nem más, mint mnemonic -> gépi kód. Ebből nem lehet "ha képes lenne több parancsot is értelmezni egy sorban" szintaxist kihozni. "Jó lenne valami high-assembler szintű de legalábbis jó makrókezeléssel, hibareportolással." vs. "z80asm: hibás kódot is lefordít hibaüzenet nélkül, makrókezelése kezdetleges". WTF high-assembler? A z80asm béta, már tartalmaz a magasabb szintű nyelvekből származó számábrázolást, tehát "osztályidegen". A macroassembler kezeli a std makrókat, de mi az a "jó makrókezelés"? Ilyet csak Columbó felőgyelő mondott a döbbent hallgatóságnak, mikor javasolták, hogy vegyen másik autót:
Van másik autónk, de azt a feleségem használja - csak bevásárlásra jó.
Szóval egy fordító lefordítja a kódot, a makrókat és hibát jelez, ha hibás a kód. Nincs "hibareportolás", mert a kétmenetes fordításból adódóan vagy meg tudja jelölni a hibás sorokat, vagy a verikális struktúrát érintő hibánál kiszáll.
Amit a "std" makrókezelésként nevezek a következőt tartalmazza: MACRO, ENDM, LOCAL, REPT, IRP, IRPC, EXITM. Persze egyéb nyelvi támogatás sem árt, pl.: IFB, IFNB, IF1, IF2, stb.
Mondhatnánk, hogy a REPT -> for, IRP -> while, de az IRPC hiánya sok irkafirkát eredményez. :( Bizony, ez van, ha valaki C aggyal próbál assemblert írni. Mint említettem, a "modern assemblerek" hátránya a modern gondolkodás adta kontraszelekció: A sok új fícsör mellett eltűnnek azok a funkciók, amit a hozzáértők - nem véletlenül - beleraktak.
A makró nem az ördögtől való. Ismétlődő műveletsort, adatdefiníciót lehet rövidíteni, de ami a legfontosabb, megkönnyíti az olvashatóságot.
Írtam egy Wyse60 terminált, amelyben jópár klaviatúra map-et kellett definiálni. A fordító TASM és volt XMS, EMS, valamint speciális alaplappal és DRDOS használatával 890kB DOS memória. A makrók miatt éppenhogy lefordult!
Ami érdekes számomra az incbin. Lehet ilyet is, de nem törik le a keze senkinek, ha egyszer forrássá alakítja pl. a képeket. Pach esetén - ha már linux - tudom ajánlani az awk + xxd kombót. Nekem működik. ;)