Köszönöm a hasznos és merőben új információkat!
Habár az egyes architektúrák assembly nyelvei hasonlóak
Nem. Szó sincs nyelvi elemekről. Az egy utasítás (álalában) megfelel egy gépi kódnak. Más architektúra == más hardver, és mást is csinál(hat).
Pl. a "load" utasítás tölthet egy regisztert. Nyilvánvalóan az 1, 3 vagy 32 regiszteres processzorok között nem lehet "hordozni" a kódot. Nem azért mert a kód különbözik, hanem a hardver különbözik.
Tehát itt szó sincs "hordozásról", hanem a hiányzó regisztereket (hardvert) "kis szoftverrel" emulálni kell - már, ha van értelme.
Néha az assembly kód kiválóan hordozható, ha az utód processzornak van natív módja (8080->V20), vagy az utód hasonló architektúra (8080->8086). Ezzel szemben a 8X300 8 utasítását sehova se fogod hordozni - ezért gyártják ma is.
Ha úgy tetszik, ez egy szakmai szleng és egyben pongyolaság is.
Elég lett volna ezt a mondatot értelmezned, nem kellett volna ezt az általános maszlagot belinkelni.
Kicsit megint kénytelen leszek elmagyarázni a kostellációt. Ha egy assembler képes kezelni a címke, mnemonic, operandus, adat entitásokat, akkor az már komplett fordító. Amire az assembler pongyola megfogalmazást használom, az mindig macro assembler, amelynél már tényleg beszélhetük a direktívák és makró képességek miatt "nyelvi elemekről". De ezek nem az assemby kód, hanem a fordító képességei.
Pl. a gputils/gpasm nem rendelkezik a REPT/IRP/IRPC direktívákkal, ezért néha csak sorról-sorra tudom beírni a kódot vagy adatot. Ennek semmi köze az adott processzor assembly utasításaihoz (és a gyártó fordítójához se), csak az assembler fordítóhoz.