Ismerete szerelő
556 7. fejezet szintű assembly
Fordítók lehet két csoportra oszthatók attól függően, hogy a kapcsolat a bemeneti és kimeneti nyelven. Ha a beviteli nyelv szimbolikus ábrázolása numerikus gépi nyelv, a fordító neve
szerelő. és a beviteli nyelvet - assembly. vagy csak a szerelő. Ha a beviteli nyelv magas szintű nyelv (pl Java, vagy C), és a célnyelvi vagy egy numerikus gépi nyelv, szimbolikus ábrázolása az utóbbi, a fordító úgynevezett fordító.
Mi az a „assembly nyelven”?
assembly nyelven - a nyelv, amelyen minden egyes állítás megfelel pontosan egy gép parancsot. Más szóval, egy programot írt assembly nyelven, van egy-egy levelezés között gépi utasítások és az üzemeltetők. Ha minden vonal a szerelő program tartalmaz pontosan egy kezelő és a gép szó tartalmaz egy parancsot, a assemblert n méretű vonalak programozni gépi kódban n szó.
Assembly nyelv számos funkciót, amely megkülönbözteti azt a magas szintű nyelven. Először is, ez egy egy-az-egyhez megfelelés közötti ope-
Ismerik a szerelő 557
Rathore assembly nyelven és gépi parancsok (már beszéltünk erről). Másodszor, a programozó írásban assembly nyelven, hozzáférést biztosít az összes berendezés és csapat a cél gépen. A programozó, aki azt írja, a magas szintű nyelvek, mint a szabadság nem. Például, ha a célgép tartalmazza a túlcsordulás bit, szerelő program nézd meg, és a Java-programot - nem. Assembly program semmilyen parancsot végrehajtani a parancsot sor a célgép, magas szintű nyelvi program - nem. Röviden, hogy mindent lehet tenni a gépi nyelv, és lehet tenni assembly nyelven, de ugyanakkor, programozók írásban programok magas szintű nyelv nem áll rendelkezésre, sok csapat, nyilvántartások, és egyéb tárgyak. Rendszer Programozási nyelvek (például C) gyakran foglalnak köztes helyzetben van. Annak ellenére, hogy a szintaxis rejlő magas szintű nyelvek, lehetőségei tekintetében eléréséhez közelebb a szerelő.
Végül az assembler program csak akkor működik a számítógépen ugyanannak a családnak, és írt program magas szintű nyelven, elméletileg futnak a különböző gépeken. Az a lehetőség, át a szoftver egyik gépről a másikra nagyon fontos a sok alkalmazás.
kinevezés szerelvény
Munka assembly nyelven nem könnyű. Írásban ugyanazt a programot összeállító sokkal tovább tart, mint a magas szintű nyelven. Ezen kívül sok időt vesz igénybe, hogy debug kódja támogatást igényel sokkal több erőfeszítést.
Amellett, hogy a két okból, van még két másik. Először is, a fordító vagy meg kell termelni a kimenet egy programot, hogy lehet használni a szerelő vagy önállóan végezni össze. Így ismerete assembly elengedhetetlen annak megértéséhez, hogy a fordító dolgozik.
A végén, valakinek be kell írni a fordító (szerelő). Másodszor, a szerelő ad egy kiváló ötlet az igazi gép-
sz. Azok számára, akik tanulmányozzák az építészet számítógépek, írásban szerelő kód - az egyetlen módja annak, hogy megtudja, mi az autó az építészeti szinten.
558 7. fejezet szintű assembly
Format kimutatások szerelő
Bár a szerkezet a szerelvény kezelő szerkezetét tükrözi a megfelelő gépi utasítás, összeszerelési nyelveken különböző gépek és a különböző szinteken nagyjából hasonló, ami arra utal, hogy az assembly általában. Listák 7,1-7,3 programot fragmens látható x86 assembly nyelven, kiszámítja a képlet N = I + J. üzemeltetők üres line memória számára van fenntartva a változó I. J és N. azaz nem szimbolikus ábrázolásai gépi utasításokat.
Listing 7.1. Kiszámítása expressziós N = I + x86 assembler Jna
; és értékük inicializálása 0
Számítógépekhez Intel család (azaz x86), több összeszerelő, melyek egymástól eltérő szintaxis. Ebben a fejezetben fogjuk használni assembly Microsoft MASM. Van is egy csomó assembler ARM processzorok, de közel vannak az x86 assembly mondattani neki, így egy példa elegendő.
Listing jelen példában címkék: FORMULA, I, J és N szerelő MASM vastagbél kerül csak a parancs után a címkéket, de nem az adatok után címkéket. Ez a különbség egyáltalán nem valami alapvető, csak
A fejlesztők a különböző összeszerelő különböző ízeket. Az architektúra nem befolyásolja a döntéseket. Az egyetlen előnye a vastagbél egy címke, amely felírható egy sorban, mint a műveleti kódot - a következő sorban az azonos bemélyedés a jelet. Anélkül, hogy a vastagbél fordító nem tudta megkülönböztetni a jelölést a műveleti kódot, amikor külön sorba.
Egyes szerelőknek jelhosszúságot legfeljebb 6 vagy 8 karakter. Ugyanakkor, a legtöbb magas szintű nyelv, a hossza tetszőleges nevet. Hosszú és jól választott nevek könnyebb elolvasni és megérteni a programot.
Minden autó néhány regiszter, de a nevük teljesen más. Regiszterek Core i7 nevű EAX, EBX, ECX, és így tovább. D.
A műveleti kód mező vagy egy jelképes rövidítése a kódot (ha az üzemben tartó szimbolikus ábrázolása gépi utasítás), vagy egy direktíva a szerelők számára. Választott nevet - ízlés dolga, és ezért
Ismerik a szerelő 559
Különböző fejlesztők hívják őket másképp. MASM szerelő fejlesztők úgy döntött, hogy a kijelölési és MOV betölteni a memória regisztert és tárolja regisztrálja a memóriában. Ugyanolyan sikerrel tudták használni MOVE párosítva egy LOAD vagy tárolni.
Programok assembly nyelven sokszor szükséges foglalni helyet az adatok. MASM fejlesztők számára kiválasztott művelet nevét DD (Define Double - meghatározzák dupla szó), mint a szövegszerkesztő 8088 volt 16 bites.
Assembly program meghatározza nemcsak a gépi utasítások, hogy végre kell hajtani a processzor, hanem a csapatok, amelyek kell végezni, hogy a szerelő (például kiosztani néhány memória, vagy kiad egy új lista oldal). A szerelési útmutató neve pszeudo-irányító. vagy assembler irányelvek. A jegyzék 7.1 láttuk jellemző pszeudo DD. Táblázat. 7.1 listákat más ál-parancs (irányelv) MASM szerelő az x86 platformon.
7.1 táblázat. Néhány szerelő irányelvek MASM
SEGMENT irányelv kezd egy új szegmensben, és a végeket irányelv kiegészíti azt. Szöveg részes indulhat, majd indítsa el a adatszegmensben, és toljuk vissza a szöveget szegmensben, és így tovább. D.
EQU irányelv biztosítja szimbolikus nevet egy bizonyos kifejezést. Például, miután a következő szimbólum BASE irányelv lehet használni a programban az érték helyett 1000:
A kifejezés, amely követi az irányelv EQU. tartalmazhat számos, szimbólumokat, jeleket csatlakoztatva aritmetikai és egyéb műveletek, mint például:
A legtöbb szerelőknek beleértve MASM előírják, hogy a karakter már a programban meghatározott előtt való megjelenése olyan kifejezések, mint ez.
Irányelv DB. DD. DW és DQ memóriát egy vagy több változó az 1, 2, 4, és 8 bájt, ill. Például:
TABLE DB 11, 23, 49
PROC és endp irányelvek határozzák meg az elején és végén a szerelő eljárásokat. Eljárások szerelő elvégzi ugyanazt a szerepet, mint a magas szintű programozási nyelv. MACRO irányelv és END m meghatározzák az elején és a végén a makrót. Mintegy makrók lesz szó a következő részben.