Kľúčový rozdiel – jazyk stroja vs jazyk zhromaždenia
Programovacie jazyky umožňujú ľuďom vytvárať pokyny pre počítač na vykonávanie úloh. Existujú tri kategórie programovacích jazykov, ako sú programovacie jazyky na vysokej úrovni, jazyk symbolických inštrukcií a strojový jazyk. Programovacie jazyky na vysokej úrovni sú pre ľudí ľahšie pochopiteľné. Jazyk rozpoznaný počítačom je známy ako strojový jazyk. Jazyk symbolických inštrukcií je jazykom medzi jazykmi na vysokej úrovni a strojovým jazykom. Kľúčový rozdiel medzi strojovým jazykom a jazykom zostavy je v tom, že strojový jazyk vykonávaný priamo počítačom a jazyk symbolov vyžaduje, aby sa assembler previedol na strojový kód alebo objektový kód, ktorý vykoná CPU.
Čo je strojový jazyk?
Ľudia rozumejú programovacím jazykom na vysokej úrovni. Na programovanie pomocou jazykov na vysokej úrovni nie je potrebné mať hlboké znalosti o internom CPU. Dodržiavajú syntax podobnú anglickému jazyku. Java, C, C++, Python sú niektoré programovacie jazyky na vysokej úrovni. Počítač rozpoznáva strojový jazyk, ale nerozumie jazykom na vysokej úrovni. Preto by sa tieto programy mali previesť do počítačom zrozumiteľného strojového jazyka. Tento preklad sa vykonáva pomocou kompilátora alebo tlmočníka.
Obrázok 01: Strojový jazyk núl a jednotiek.
Strojový jazyk pozostáva z binárnych číslic, ktorými sú nuly a raz. Počítač je digitálne elektronické zariadenie, takže na operácie používa binárne. Jedna označuje skutočný stav / stav zapnutia, zatiaľ čo nula označuje nesprávny stav / stav vypnutia. Spôsob konverzie programu z jazyka vysokej úrovne do strojového jazyka závisí od CPU.
Čo je jazyk assembleru?
Assembly language je stredný jazyk medzi programovacími jazykmi na vysokej úrovni a strojovým jazykom. Je to o úroveň vyššie ako strojový jazyk. Assembler je ľahšie pochopiteľný ako strojový jazyk, ale je ťažší ako programovacie jazyky na vysokej úrovni. Tento jazyk je známy aj ako nízkoúrovňový jazyk, pretože je blízky hardvérovej úrovni. Aby bolo možné písať efektívne programy pomocou Assembly, programátor by mal dobre rozumieť architektúre počítača a štruktúre registrov. Špeciálny kompilátor známy ako assembler sa používa na prevod inštrukcií v jazyku symbolických inštrukcií na strojový kód alebo objektový kód.
Prehlásenia v jazyku montáže majú štyri časti. Sú to označenie, mnemotechnická pomôcka, operand, komentár. Označenie a komentáre sú voliteľné. Mnemotechnická pomôcka je inštrukcia na vykonanie a operandy sú parametre príkazu. Assembler podporuje aj makrá. Makro môže byť definované ako súbor inštrukcií s názvom. Dá sa použiť inde v programe.
Niektoré príklady príkazov v jazyku symbolických inštrukcií sú nasledovné.
MOV SUM, 50 – Táto inštrukcia skopíruje hodnotu 50 do premennej SUM.
PRIDAŤ HODNOTU1, 20 – Týmto sa pridá 20 k premennej VALUE1
ADD AH, BH – Táto inštrukcia slúži na skopírovanie obsahu registra AH do registra BH.
INC COUNT – Toto slúži na zvýšenie premennej COUNT o jednu.
A HODNOTA1, 100 – Toto slúži na vykonanie operácie AND s premennými VALUE1 a 100.
MOV AL, 20 – Toto je skopírovanie hodnoty 20 do registra AL
Obrázok 02: Program napísaný pomocou jazyka assembleru
Súbor príkazov zostavy je program zostavy. Je vidieť, že jazyk symbolických inštrukcií je jednoduchší ako strojový jazyk. Má syntax podobnú anglickému jazyku. Jazyk symbolických inštrukcií má okolo tridsať inštrukcií. Požadovaná pamäť a čas spustenia sú minimálne v porovnaní s jazykmi na vysokej úrovni.
V systémoch v reálnom čase môžu nastať udalosti, ktoré vyžadujú okamžitú akciu CPU. Tieto udalosti sú špeciálne podprogramy nazývané Interrupt service Rutina (ISR). Assembler je užitočný pri programovaní ISR.
Aká je podobnosť medzi strojovým jazykom a jazykom symbolických inštrukcií?
Jazyk strojového zariadenia aj jazyk symbolov súvisia s úrovňou hardvéru
Aký je rozdiel medzi strojovým jazykom a jazykom symbolických inštrukcií?
Strojový jazyk vs jazyk zhromaždenia |
|
Machine language je programovací jazyk najnižšej úrovne, v ktorom sú inštrukcie vykonávané priamo CPU. | Assembly language je nízkoúrovňový programovací jazyk, ktorý vyžaduje, aby assembler konvertoval na strojový/objektový kód. |
Zrozumiteľnosť | |
Jazyk stroja je zrozumiteľný iba pre počítače. | Jazyk zhromaždenia je pre ľudí zrozumiteľný. |
Syntax | |
Strojový jazyk pozostáva z binárnych číslic. | Jazyk zostavy má syntax podobnú anglickému jazyku. |
Závislosť | |
Jazyk stroja sa líši v závislosti od platformy. | Jazyk zostavy pozostáva zo štandardnej sady pokynov. |
Aplikácie | |
Jazyk stroja je strojový kód. | Jazyk zostavy sa používa pre mikroprocesorové systémy v reálnom čase. |
Summary – Machine Language vs Assembly Language
Rozdiel medzi strojovým jazykom a jazykom symbolov je ten, že strojový jazyk je vykonávaný priamo počítačom a jazyk symbolov je nízkoúrovňový programovací jazyk, ktorý vyžaduje, aby sa assembler konvertoval na objektový kód alebo strojový kód. Jazyk symbolických inštrukcií je o krok vpred pred strojovým jazykom. Assembler je ideálny jazyk na programovanie systémov založených na mikrokontroléroch. Tento jazyk tiež poskytuje dobré pochopenie fungovania CPU a vnútorných komponentov počítača.
Stiahnite si verziu PDF Machine Language vs Assembly Language
Verziu tohto článku si môžete stiahnuť vo formáte PDF a použiť ju na offline účely podľa citácie. Stiahnite si PDF verziu tu Rozdiel medzi strojovým jazykom a jazykom montáže
S láskavým dovolením obrázka:
1.’Machine language’Od Turkei89 – Vlastná práca, (CC BY-SA 3.0) cez Commons Wikimedia
2.’Zstr count x86 Assembly’ Od OldCodger2, (Public Domain) cez Commons Wikimedia