Rozdíl mezi ASM a strojovým kódem

dan67

Rozdíl mezi ASM a strojovým kódem
« kdy: Dnes v 10:40:29 »
Ahoj všem,
mám volnější "víkendový" dotaz. V souvislostí znovuobjeveného ATARI 130XE (nedávný článek od M.Tauchmana) a  o programování pro ATARI 8bity (od P.Tišnovského).

Zavzpomínal jsem na své pozdně pubertální hrátky s Atari, pokusy o něco jako programování...

Assembler a strojový kod vnímám jako jedno a to samé. Stroják jsou jen čísla, ASM jsou místo "některých čísel" zkratky instrukcí procesoru. Jinak v tom zásadní rozdíl nevidím.
Kromě ulehčení v ASM editoru, který pomáhá se skoky, resp. adresací skoků. Což bych si mohl spočítat taky sám, stejně jako jsem si časem zapamatoval kody ASM instrukcí.
Případně přenositelnost, kdy stejná instrukce na jiném procesoru má jiný kod.

Nebo mi, jako laikovi, ještě něco uniká? V souvoslosti s 8bity, moderní procesory jsou jiná liga.
Nechystám se začít programovat, jen tak vzpomínám.
« Poslední změna: Dnes v 10:44:32 od dan67 »


Re:ASM a strojový kod
« Odpověď #1 kdy: Dnes v 11:06:33 »
Záleží na "kompilátoru". Některý uměly i složitější věci jako například makra. Ale jinak to víceméně vidím podobně - je to strojový kód v "lehce čitelnější" podobě.

Re:ASM a strojový kod
« Odpověď #2 kdy: Dnes v 11:07:02 »
Divna otazka. I Photoshop muzete napsat ve strojovem kodu (pokud se predtim zasobite dostatecnym mnozstvim elixiru mladi nebo si poridite poradnej autismus). Jestli mezi psanim v assembleru a strojovem kodu nevidite rozdil, tak jste asi nepsal rozsahlejsi veci.

Re:Rozdíl mezi ASM a strojovým kódem
« Odpověď #3 kdy: Dnes v 12:22:00 »
Assembler je program, který překládá zdrojový kód v jazyce symbolických adres. Přeneseně, ale chybně, se tak nazývá i ten jazyk.

Takže ty si ty adresy klidně můžeš spočítat ručně a nacvakat binární program přímo do paměti, jako se to dělalo třeba na tom PMI-80, nebo si je pojmenuješ slovy a on ti jejich hodnoty spočítá sám. Jinak ten kód píšeš pořád ve strojáku, akorát s pomocí mnemotechnických zkratek názvů instrukcí, a ne jejich číselného vyjádření. Viz Bowen's Cards: http://www.textfiles.com/programming/CARDS/

Re:Rozdíl mezi ASM a strojovým kódem
« Odpověď #4 kdy: Dnes v 18:16:24 »
Radovan ma pravdu tak s polovice. Zabudol na tu najdolezitejsiu cast a pritom ju ma priamo pred ocami:

Jedna sa o JAZYK SYMBOLICKYCH ADRES.

To je ten zasadny rozdiel medzi strojakom a "assemblerom" (teda spravne jazykom symbolickych adres)

STROJAK: je jedno ci ho pisete rovno v hex kodoch alebo pouzivate mnemonicke pomocky (nazvy instrukcii). Pointa je, ze mate pevne vypocitane adresy skokov, podprogramov, dat, atd...
V pripade akejkolvek upravy kodu ste v riti a musite to prepocitat znova.

JAZYK SYMBOLICKYCH ADRES: Kludne mozete pouzit aj hex kody (tam, kde adresa nieje pevne "zasita" v kode instrukcie). Podstatne je, ze skoky su dane symbolickymi navestiami (a nie len skoky, ale v podstate vsetky adresy).
Realne adresy sa vypocitaju az pri preklade. A nerobite to rucne, ale prekladac sa postara.
Upravy kodu su easy...