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

jjrsk

  • *****
  • 910
    • Zobrazit profil
Re:Rozdíl mezi ASM a strojovým kódem
« Odpověď #15 kdy: Dnes v 12:14:38 »
...Assembler a strojový kod vnímám jako jedno a to samé. ...
Nj, to jsou ty zaklady ...

Mile deti, zatimco asm lze prelozit pro ruzna CPU, tak strojak je proste omezen na jedno konkretni (nejen)* cpu. Ta cisla co z toho vypadnou proste muzou byt ruzna.

*Soucasti muze byt samozrejme kod i pro dalsi chipy.



smoofy

  • *****
  • 1 061
    • Zobrazit profil
    • E-mail
Re:Rozdíl mezi ASM a strojovým kódem
« Odpověď #16 kdy: Dnes v 18:43:45 »
Mile deti, zatimco asm lze prelozit pro ruzna CPU, tak strojak je proste omezen na jedno konkretni (nejen)* cpu. Ta cisla co z toho vypadnou proste muzou byt ruzna.
ASM nelze prelozit pro ruzna CPU. Kazda CPU architektura ma vlastni asm ve kterem je psany ten kod. No a ta cisla co z toho vypadnou budou z principu pro danou architekturu vzdycky stejna.
Kdyz se podivas na zdrojove kody nejakeho open source OS co podporuje vice platforem tak tam presne uvidis, ze to ma nejakou low level vrstvu v asm ktera je platform specific a nad ni teprve je ta spolecna univerzalni pro vsechny platformy v nejakem vyssim programovacim jazyku. Presne takhle funguje crosscompilace. Ty doslova rikas compilatoru, pro jakou architekturu ma prekladat ten vyssi jazyk. Sice to tam nebude fungovat, prave kvuli tomu ze ty instrukce nedavaji tomu tvemu CPU smysl, ale zkompilovat to v pohode pujde.

Re:Rozdíl mezi ASM a strojovým kódem
« Odpověď #17 kdy: Dnes v 19:00:27 »
Assembler a strojový kód je defakto to samé, s jedním docela zásadním rozdílem. Strojovým kódem se myslí to, co vyleze z assembler editoru. Programovat ve strojovém kódu znamená psát rovnou v číslech které daný procesor vykonává jako instrukce a přepočítávat i relativní skoky, absolutní skoky apod.
Strojový kód je je prostě jen hromada čísel.
Assembler je editor, který programátora odstíní od strojového kódu tím, že to pěkně píše v IDE a to pak vygeneruje ta čísla kterým CPU rozumí.
„Řemeslo se naučí každý. Umění nikdo.“
„Jednoduchost je nejvyšší úroveň sofistikovanosti.“
- Leonardo Da Vinci

Re:Rozdíl mezi ASM a strojovým kódem
« Odpověď #18 kdy: Dnes v 20:09:02 »
zatimco asm lze prelozit pro ruzna CPU
Ehm... Ne. Proto, aby tohle šlo, vymysleli před 1000110 lety FORTRAN.

Ono je to ještě zajímavější, protože například stroják pro Intel 8080 na Zilogu Z80 spustit jde*, ale zdroják pro assembler i8080 v assembleru pro Z80 zkompilovat nejde. Má sice stejné opkódy, ale úplně jinou mnemoniku instrukcí :P

Takže bych ještě zdůraznil to, co už tu párkrát porůznu zaznělo, tedy že ten "assembler" je strojový kód zapsaný lidským jazykem.

A kdo chce vědět co programování přímo ve strojovém kódu obnáší a umožňuje, přečte si http://www.catb.org/jargon/html/story-of-mel.html.

* Až na pár výjimek, ale to ať si vyřeší uživatelé SAPI-1 různých generací :o