Registre assemblerov: typy, účel a vlastnosti príkazov

Procesorové bunky, ktoré sa tiež nazývajú registre assemblerov, kvôli nízkym - programovací jazyk na úrovni, ktorý ich ovláda , predstavujú určitý blok voľných prvkov v pamäti. Ich charakteristická vlastnosť je ultrarýchly prístup do pamäte. Registre sa najčastejšie používajú pri vykonávaní príkazov procesora a nie sú k dispozícii programátorovi. Napríklad počas vzorkovania z dostupnej superrýchlej pamäte nasledujúceho príkazu podľa čísla sa jeho kód v binárnom systéme umiestni do registra.

Nie je možný priamy prístup do registra. Okrem toho existuje množstvo dostupných pamäťových blokov, ale prístup k nim je možný iba z operačný systém shell. Patria sem registre riadiacich segmentov, ako aj systémy tieňových deskriptorov. Tieto registre používajú pri svojej práci výlučne vývojári OS.

Štruktúra registra v assembleri

Typy registrov

Počas programovania sa používajú rôzne registre Assemblerov pre rôzne potreby. Používajú sa v závislosti od cieľov. Napríklad register počítadla sa používa na usporiadanie jednoduchých aj vnorených slučiek. Hlavné typy z assembler registrov sú uvedené nižšie:

  • Registre na všeobecné účely.
  • Indexové registre.
  • Registre ukazovateľov.
  • Segmentované pamäťové bloky.
  • Registre vlajok.

V skutočnosti všetky registre zaberajú 32 bitov v pamäti. To znamená, že môžu obsahovať čísla od nuly do 4294967295. Niektoré z registrov sú rozdelené do niekoľkých častí 16 a 8 bitov. To vám umožní spravovať buď časť pamäťového bloku alebo celú bunku a zapisovať do nej iba časť údajov.

Príkazy Na Správu Pamäte

Registre assemblera boli pomenované podľa vykonávaných funkcií:

  • EAH-akumulátor registra batérií;
  • EBX-Base-Base;
  • ECX-počítadlo-zodpovedný za účet;
  • EDX-Data-blok dátových buniek;
  • Index zdroja-register zdrojov;
  • EDI - Index destinácie-register prijímateľov;
  • ESP-ukazovateľ zásobníka-ukazovateľ na zásobník;
  • EBP-základný ukazovateľ-základný ukazovateľ zásobníka.

Funkcie používania registrov

Stojí za zváženie, že každý z určených registrov možno použiť nielen na zadávanie údajov. Do databázy môžete napríklad zadať ľubovoľné desatinné číslo a použiť ho ako počítadlo. Je však nežiaduce používať na tieto účely pamäťové bloky, ktoré zodpovedajú ukazovateľom-ESP a EBP, pretože v tomto prípade môžu nastať problémy s prístupom k bunkám abstraktného dátového typu. Účelom registrov assemblerov je ukladanie niektorých informácií, na ktoré je možné použiť akýkoľvek druh.

Kód ASM a zobrazenie zoznamu

Registre na všeobecné účely

Tento typ registrov je určený na ukladanie údajov po výpočtových operáciách. V skutočnosti môžete pomocou príkazu mov zadávať informácie v akejkoľvek forme a systéme výpočtu: binárne, osmičkové, desatinné alebo hexadecimálne. Ďalším názvom sú dátové registre assemblerov. Zoznam registrov montérov na všeobecné účely obsahuje:

  • EAH (akumulátor) akumulačný register. Skladá sa z troch menších blokov po 8 bitoch: AH, AN, AL. V prípade potreby máte prístup k dvom spodným blokom.
  • EVX (base) - dátový blok, ktorý je zodpovedný za databázu. Rovnako ako všetky univerzálne registre sa skladá z dvoch sekcií nižšieho rádu po 8 bitoch a jednej hexadecimálnej. Do jedného registra je teda možné umiestniť niekoľko číselných hodnôt naraz.
  • ECX (počítadlo) – zodpovedný za počítadlo. Používa sa počas vykonávania cyklov. Príkaz slučky bez neho nefunguje. Skladá sa z dvoch častí, z ktorých jedna obsahuje dva osembitové bloky CH a CL.
  • EDX-dáta-potrebné pre operácie na presné určenie adresy V RAM pre vstupné a výstupné funkcie. Okrem toho je možné do tohto registra umiestniť údaje na presmerovanie na použitie v postupoch a šablónach. Práca s registrami v 64-bitovej verzii

Registre ukazovateľov

Na prácu so zásobníkom v assembleri vývojári poskytujú dva typy registrov. Prístup k nim , vykoná sa operácia na pridanie bitové hodnoty určitého dátového typu na vrcholový ukazovateľ abstraktného typu, ktorý bol umiestnený na zásobníku. Všetky výpočty sa vykonávajú ručne. Týmto spôsobom sa ukladá veľké množstvo údajov a prenáša sa do podprogramov – procedúr a polí. Medzi registrami ukazovateľov v assembleri sa rozlišujú:

Štruktúra spracovateľa a registrov
  • Register ESP je ukazovateľ na hornú časť zásobníka. Vždy obsahuje adresu prvého prvku, ktorý bol umiestnený na zásobníku v vyrovnávacej pamäti procesora. V prípade potreby je možné vyplniť ďalšie údaje. Obsahuje malé písmená SP pozostávajúce zo 16 bitov.
  • Register EBP (základný ukazovateľ) je blok pamäťových buniek potrebných na adresovanie údajov obsiahnutých v zásobníku. Zároveň výrazne uľahčuje prístup ku všetkým údajom a premenným. Zahŕňa juniorskú kategóriu BP.

Registre-indexy

Na rozšírené indexovanie sú potrebné bloky indexovej pamäte. Okrem toho sa podieľajú na niektorých aritmetických operáciách a spracovaní bajtových reťazcov – sekvencie bajtov obsahujúcich ľubovoľnú hodnotu. Assembler obsahuje dva registre, ktoré sú zodpovedné za indexovanie ESI a EDI. Popíšme ich:

  • ESI (zdrojový index) obsahuje zdrojový index (miesto, odkiaľ údaje pochádzajú) a je potrebný pre časť akcií na bajtových reťazcoch;
  • EDI (cieľový index) je potrebný na zaznamenanie výsledkov výpočtov. Používa sa aj pre časť reťazcových akcií. Čiastočne súvisí s registrom segmentov ES.

Registre segmentov

Sú prvé bloky v pamäti. Sa nazývajú súčasné segmenty. Softvér môže prideliť viac ako štyri bloky pamäte. Je však potrebné zadať adresy blokov v pamäťových bunkách medzi segmentovými registrami. Tento typ pamäťových blokov je prísne špecifický, takže nie je možné ich vyplniť samostatným typom údajov. Poradie blokov registra v pamäti sa môže líšiť. Registre segmentov sú uložené v náhodnom poradí na náhodných pamäťových miestach.

  • Register kódov CS v obvyklej podobe obsahuje adresu začiatku segment softvérového kódu (začiatok strojovej reprezentácie kódu). Prechod sa teda vykonáva príkazmi v dôsledku príkazového ukazovateľa IP.
  • Register údajov obsahuje adresu údajov, ktoré program spracováva na začiatku spustenia. Pohyb údajov sa vykonáva v dôsledku posunu, ktorý je zaznamenaný v registri EIP.
  • Segment zásobníka (ESS) je potrebný na uloženie začiatku segmentu abstraktného dátového typu.
  • Extra segment je pomocný register, ktorý obsahuje prázdnu oblasť na zápis údajov počas niektoré operácie na bajtových reťazcoch. Môže obsahovať informácie podobné.

do registra údajov registra ukazovateľov pokynov

Komunikácia medzi pamäťovými blokmi

Tento typ odkazuje na príkaz. Pomocou tohto ukazovateľa sa register assemblerov zobrazí na výpis. Zahŕňa údaje o posunutí na nasledujúci príkaz vzhľadom na predchádzajúci príkaz. Prakticky sa nepoužíva pri vývoji softvéru, ale je potrebné zobraziť zoznam vykonávania kódu. Takto sa sledujú chyby.

Register vlajok montéra

Zodpovedný za aktuálny stav CPU. Skladá sa zo 16 bitov, z ktorých je možné obsadiť iba 9. Vyplnenie tohto pamäťového bloku sa vykoná po vykonaní, preskočení alebo chybovom kóde v dôsledku predchádzajúceho príkazu. Niektoré bity navyše používa procesor a je možné ich inicializovať a odstrániť pomocou špecifického príkazového systému. Takto je riadený príkazový systém.

Články na tému