logo

Co je jazyk symbolických instrukcí?

Když mluvíme o programovacích jazycích, první věc, která nás napadne, jsou jazyky jako C, C++, Java, Python atd. Ale tyto jazyky skrývají skutečnou práci, tj. abstrahují mnoho věcí od uživatelů. Existuje však jazyk, který skutečně spočívá na základních pojmech programování nebo interakce mezi počítačovým hardwarem.

Co je jazyk symbolických instrukcí?

Jazyk symbolických instrukcí je nízkoúrovňový jazyk, který pomáhá přímo komunikovat s počítačovým hardwarem. Používá mnemotechnické pomůcky k reprezentaci operací, které musí procesor udělat. Což je prostřední jazyk mezi jazyky na vysoké úrovni, jako je C++ a binárním jazykem. Používá hexadecimální a binární hodnoty a je čitelný pro lidi.



Evoluce jazyka symbolických instrukcí?

Jazyk symbolických instrukcí se vyvíjel ruku v ruce s pokrokem v počítačovém hardwaru a vyvíjejícími se potřebami programátorů. Zde je bližší pohled na každou generaci:

První generace (1940-1950):

  • Počítače se spoléhaly na elektronky a programování probíhalo přímo ve strojovém jazyce pomocí binárních instrukcí.
  • Jazyk symbolických instrukcí se objevil jako čitelná abstrakce využívající mnemotechnické kódy k reprezentaci strojových instrukcí.

Druhá generace (1950-1960):



  • Tranzistorové počítače nahradily elektronky a nabízely vylepšenou konzistenci a zdatnost.
  • Jazyky assembleru se staly složitějšími, aby zvládly složité instrukční sady těchto nových strojů. Současně, vysokoúrovňové programovací jazyky jako FORTRAN a COBOL za předpokladu pokročilé abstrakce

Třetí generace (1960-1970):

  • Integrované obvody se staly standardním místem, což mělo za následek zmenšené, ale výkonné počítače.
  • Jazyky assembleru se dále vyvíjely a zaváděly funkce jako makra a symbolické štítky, což zvýšilo produktivitu programátorů a čitelnost kódu.

Čtvrtá generace (1970-1980):

  • Začátek mikroprocesorů změnil výpočetní techniku ​​a připravil cestu pro mikropočítačové systémy, jako jsou IBM PC a Apple II.
  • Jazyky symbolických instrukcí pro mikropočítače byly přepracovány tak, aby se zlepšila uživatelská přístupnost, včetně zvýraznění syntaxe a automatického odsazení, čímž se zvýšila inkluzivita pro větší skupinu programátorů.

Pátá generace (1980-současnost):



  • Tato éra je charakterizována prováděním více výpočetních úloh současně, tato metoda je známá jako paralelní systém zpracování a růst sofistikovaných softwarových systémů
  • Jazyk symbolických instrukcí se nadále vyvíjel, aby vyhovoval požadavkům programátorů, s nasazením nejmodernějších metod a nástrojů ladění zaměřených na zlepšení výkonu kódu a produktivity. pro složité systémy.

Jak funguje jazyk symbolických instrukcí?

Jazyky assembleru obsahují mnemotechnické kódy, které určují, co má procesor dělat. Mnemotechnický kód, který byl napsán programátorem, byl pro provedení převeden do strojového jazyka (binární jazyk). K převodu kódu assembleru do strojového jazyka se používá assembler. Tento strojový kód je uložen ve spustitelném souboru kvůli provedení.

Umožňuje programátorovi komunikovat přímo s hardwarem, jako jsou registry, paměťová místa, vstupní/výstupní zařízení nebo jakékoliv jiné Hardware komponenty. Což by mohlo pomoci programátorovi přímo řídit hardwarové komponenty a efektivně řídit zdroje.

Jak spustit jazyk assembleru?

  • Napište kód sestavy : Otevřete libovolný textový editor v zařízení a napište do něj mnemotechnické kódy a uložte soubor se správnou příponou podle vašeho assembleru. Prodloužení může být .asm , .s , .asm X.
  • Sestavení kódu : Převeďte svůj kód do strojového jazyka pomocí an assembler .
  • Generování objektového souboru : Vygeneruje objektový soubor odpovídající vašemu kódu. Bude mít prodloužení. obj .
  • Propojování a vytváření spustitelných souborů : Náš assembler může obsahovat více zdrojových kódů. A musíme je propojit s knihovnami, aby to bylo spustitelné. Pro tento účel můžeme použít linker jako lk.
  • Běžící program : Po vytvoření spustitelného souboru jej můžeme spustit jako obvykle. Bude záležet na softwaru, jak program spustit.

Komponenty jazyka symbolických instrukcí

  • Registry: Registry jsou místa rychlé paměti umístěná uvnitř procesoru. Což pomáhá JÍT provádět aritmetické operace a dočasné ukládání dat. Příklad: Ax (Akumulátor), Bx, Cx.
  • Příkaz: Instrukce v kódu assembleru známá jako příkaz informuje assembler, co má dělat. Instrukce v jazyce symbolických instrukcí obvykle používají samopopisné zkratky pro zjednodušení slovní zásoby, jako je ADD pro přidání a MOV pro přesun dat.
  • Instrukce: Instrukce jsou mnemotechnické kódy, které dáváme procesoru k provádění konkrétních úkolů, jako je LOAD, ADDITION, MOVE. Příklad: ADD
  • Štítky: Je to symbolický název/identifikátor určený k označení konkrétního umístění nebo adresy v kódu sestavy. Příklad: FIRST pro označení začátku provádění části kódu.
  • mnemotechnická pomůcka: Mnemotechnická pomůcka je zkratka pro instrukci v jazyce symbolických instrukcí nebo název daný funkci stroje. Každá mnemotechnická pomůcka v sestavení odpovídá konkrétní strojové instrukci. Add je ilustrace jednoho z těchto příkazů stroje. Mezi další příklady patří CMP, Mul a Lea.
  • Makro: Makra jsou programové kódy, které lze použít kdekoli v programu prostřednictvím jeho volání, jakmile jej definujeme. A často je zabudován pomocí assemblerů a kompilátorů. Měli bychom jej definovat pomocí direktivy %makro. Příklad: %macro ADD_TWO_NUMBERS 2
    přidat eax, %1
    přidat eax, %2
    %endmacro
  • Operandy: Jsou to data nebo hodnoty, které dostáváme prostřednictvím instrukce, abychom s nimi provedli nějakou operaci. Příklad: V ADD R1,R2 ; R1 a R2 jsou operandy.
  • operační kód: Toto jsou mnemotechnické kódy, které specifikují procesoru, která operace musí být provedena. Příklad: ADD znamená Sčítání.

Hexadecimální číselná soustava je číselný systém, který se používá k reprezentaci různých čísel pomocí 16 symbolů, které jsou od 0 až 9 číslic a abeceda A až F a to je číselná soustava se základnou 16. 0 až 9 v desítkové a šestnáctkové soustavě jsou stejné.

Desetinná až hexadecimální tabulka

Desetinný

Hex

Desetinný

Hex

Desetinný

Hex

vyberte multi table sql

Desetinný

Hex

0

0

10

A

dvacet

14

30

1E

1

1

jedenáct

B

dvacet jedna

patnáct

31

1F

2

2

12

C

22

16

32

dvacet

3

3

13

D

23

17

33

dvacet jedna

4

4

14

A

24

18

3. 4

22

5

5

patnáct

F

25

19

35

23

6

6

16

10

26

1A

36

24

7

ankita dave

7

17

jedenáct

27

1B

37

25

8

8

18

12

28

1 C

38

26

9

9

19

13

29

1D

39

27

Hexadecimální čísla lze snadno převést do jiné formy, jako je binární číselná soustava, soustava desítkových čísel, soustava osmičkových čísel a naopak. V tomto článku se zaměříme pouze na převod šestnáctkové soustavy na desítkovou a naopak.

Převod desítkové soustavy na šestnáctkovou:

Krok 1: Zadejte desetinnou hodnotu N.

Krok 2: Vydělte N 16 a zbytek uložte.

Krok 3: Znovu vydělte podíl 16, získáte v kroku 2 a uložte zbytek.

Krok 3: opakujte krok 3, dokud se podíl nestane 0.

krok 4: Zapište zbytek v opačném pořadí a toto je hexadecimální hodnota čísla.

Příklad: Převeďte 450 desítkovou hodnotu na šestnáctkovou.

krok 1: N = 450.

Krok 2: 450/16 dává Q = 28, R = 2.

Krok 3: 28/16 dává Q = 1, R = 12 = C.

Krok 4: 1/16 dává Q = 0, R = 1.

Krok 5: hexadecimální číslo 450 je 1C2.

Hexadecimální převod na desítkové

Chcete-li převést Hexadecimální na Decimální, vynásobte každou číslici 16 na mocninu její pozice počínaje zprava a pozice číslice úplně vpravo je 0, pak přidejte výsledek.

Příklad: Převést (A7B) 16 na desítkové.

(A7B)16= A × 162+7×161+ B × 160

⇒ (A7B)16= 10 × 256 + 7 × 16 + 11 × 1 (převeďte symboly A a B na jejich desetinné ekvivalenty; A = 10, B = 11)

⇒ (A7B)16= 2560 + 112 + 11

⇒ (A7B)16= 2683

Proto desetinný ekvivalent (A7B)16je (2683)10.

Výhody assembleru

  • Poskytuje přesnou kontrolu nad hardwarem a tím i zvýšenou optimalizaci kódu.
  • Umožňuje přímý přístup k hardwarovým komponentám, jako jsou registry, takže umožňuje přizpůsobená řešení hardwarových problémů.
  • Efektivní využití zdrojů díky řízení na nízké úrovni, optimalizovanému kódu, povědomí o zdrojích, přizpůsobení atd.
  • Je ideální pro programování mikrokontroléry , senzory a další hardwarové komponenty.
  • Používá se v bezpečnostních výzkumech pro nalezení bezpečnostních zranitelností, software pro reverzní inženýrství pro zabezpečení systému.
  • Je to velmi důležité pro výrobu operační systémy , jádro a ovladače zařízení který ke své funkčnosti vyžaduje hardwarovou interakci.

Nevýhody assembleru

  • Komplexní a velmi těžké se naučit jazyk, zejména pro začátečníky.
  • Je vysoce závislý na stroji. Takže to omezuje přenositelnost.
  • Je opravdu těžké kód udržovat, zvláště u velkých projektů.
  • Je to velmi časově náročné, protože je to opravdu těžké na pochopení a velmi dlouhý kód.
  • Ladění je pro programátory velmi náročná.

Často kladené otázky týkající se jazyka symbolických instrukcí – FAQ

Kde se používá jazyk symbolických instrukcí?

  • Vývoj operačního systému
  • Vytvoření ovladače zařízení
  • Programování vestavěných systémů
  • Aplikace v reálném čase
  • Bezpečnostní výzkum

Rozdíl mezi jazykem symbolických instrukcí a jazykem vysoké úrovně?

Assembly Language jsou mnemotechnické kódy a úzce souvisí s instrukční sadou CPU. V HLL existuje abstrakce.

Jakou architekturu CPU bych se měl naučit pro programování sestav?

Architektury mikroprocesorů 8085 a 8086 jsou mnohem lepší pro pochopení pojmů.

Je jazyk symbolických instrukcí v moderních počítačích stále relevantní?

Ano. Jazyk symbolických instrukcí zůstává relevantní.