Digitális rendszerek. Utasításarchitektúra szintje

Hasonló dokumentumok
Máté: Assembly programozás

1. Az utasítás beolvasása a processzorba

Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása

A 32 bites x86-os architektúra regiszterei

Máté: Számítógép architektúrák

Assembly utasítások listája

Számítógép architektúrák

Adatelérés és memóriakezelés

Assembly. Iványi Péter

Máté: Számítógép architektúrák

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

Máté: Számítógép architektúrák

Számítógép Architektúrák

Aritmetikai utasítások I.

A regiszterek az assembly programozás változói. A processzor az egyes mőveleteket kizárólag regiszterek közremőködésével tudja végrehajtani.

Assembly programozás levelező tagozat

Bevezetés a számítástechnikába

Bevezetés az informatikába

A számítógép alapfelépítése

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Egyszerű RISC CPU tervezése

Az integrált áramkörök kimenetének kialakítása

Adatok ábrázolása, adattípusok

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006

Assembly Utasítások, programok. Iványi Péter

Archi2 Gyak. (Processzorok Utasításszintű Kezelése) 2014 ősz

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Processzorok Utasításszintű Kezelése tavasz

A MiniRISC processzor

1. ábra: Perifériára való írás idődiagramja

Műveletek. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár

Utasításfajták Memóriacímzés Architektúrák Végrehajtás Esettanulmányok. 2. előadás. Kitlei Róbert november 28.

SzA19. Az elágazások vizsgálata

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni.

Összeadás BCD számokkal

Digitális technika VIMIAA01

Paraméter átadás regisztereken keresztül

Intel x86 utasításkészlet

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Számítógépek felépítése, alapfogalmak

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák

ASSEMBLY PROGRAMOZÁS TANTÁRGYHOZ SZÜKSÉGES ELŐISMERETEK ISMÉTLÉSE

Máté: Számítógép architektúrák

Informatika 1 2. el adás: Absztrakt számítógépek

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák

Karunkról Kari digitális könyvtár

TARTALOMJEGYZÉK. 1. BEVEZETÉS A logikai hálózatok csoportosítása Logikai rendszerek... 6

Máté: Számítógép architektúrák

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

Stack Vezérlés szerkezet Adat 2.

Mintavételes szabályozás mikrovezérlő segítségével

Számítógépek felépítése, alapfogalmak

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Számítógépek, számítógép rendszerek

Számítógépek felépítése

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]

Architektúra, megszakítási rendszerek

Assembly Címzési módok. Iványi Péter

HARDVERKÖZELI PROGRAMOZÁS1

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Vezérlésfolyam gráf és X86 utasításkészlet

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Aritmetikai utasítások

INTEL 8085 gépi utasításkészlete

A Számítógépek felépítése, mőködési módjai

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Kitlei Róbert. Assembly programozás ELTE, Lektorálta: Dévai Gergely. Kitlei Róbert Assembly programozás 1

Máté: Számítógép architektúrák

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

7. Fejezet A processzor és a memória

Assembly programozás levelező tagozat

Számítógép architektúrák

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Alapfogalmak. Dr. Kallós Gábor A Neumann-elv. Számolóeszközök és számítógépek. A számítógép felépítése

A 6502 mikroprocesszor

Digitális technika VIMIAA hét

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Mikrokontrollerek. Tihanyi Attila május 8

Labor gyakorlat Mikrovezérlők

GPU Lab. 3. fejezet. Az X86 Utasításkészlet. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

2016/08/31 02:45 1/6 Hardver alapok

Intel x86 utasításkészlet + disassembler működése

Digitális technika VIMIAA hét

Bevezetés a számítástechnikába

Programozás alapjai. 10. előadás

Programozott soros szinkron adatátvitel

Átírás:

Digitális rendszerek Utasításarchitektúra szintje

Utasításarchitektúra Jellemzők Mikroarchitektúra és az operációs rendszer közötti réteg Eredetileg ez jelent meg először Sokszor az assembly nyelvvel keverik Megteremti a kapcsolatot a szoftver és a hardver között a fordítóprogramok és a hardver közötti kapcsolatot definiálja Visszafelé kompatibilitás fontos szempont lehet a tervezése során 2

Memóriaszervezési kérdések Cellaméret pl. 8 bit, szavak pl. 32 vagy 64 bit Szavak igazítása Visszafelé kompatibilitás költségnövekedéssel járhat Egyesített vagy osztott címtartomány Az adatok és az utasítások közös vagy különálló címtartományt használnak Memóriaszemantika Egy STORE A utasítást követő LOAD A mit fog visszaadni? Memóriaműveletek végrehajtása: kötött vagy definiálatlan sorrendben SYNC utasítás kiadása, vagy hardveres függőség kezelése 3

Regiszterek Speciális célú regiszterek Utasításszámláló, veremmutató, egyéb speciális funkciójú (gyorsítótárak, memória, I/O eszközök, stb. vezérlésére) regiszterek Flags regiszter vagy Programállapotszó (PSW, Program Status Word) regiszter Feltételbitek: ALU-ciklusok használják, utasítás eredményétől függ az állapotuk, pl.: N,Z,O,C,A,P Egyéb jelzőbitek: nyomkövetés, CPU prioritási szint, INTA, stb. Általános célú regiszterek Lokális változók, részeredmények tárolása Teljesen szimmetrikusak és felcserélhető is lehetnek Ezeken belül egyesek speciális funkcióval is rendelkezhetnek 4

Utasításarchitektúra - példa Pentium 4 IA-32 architektúra; MMX, SSE és SSE2 utasítások Működési üzemmódok: Valós, virtuális és védett Szinte kimeríthetetlen címtartomány 16384 szegmens, szegmensenként 2 32 cím, a legtöbb op. rendszer (UNIX, Windows) csak egyet lát belőle 32 bites szószervezés Tárolás: Little-endian szerint 32 bites regiszterek EAX, EBX, ECX, EDX 8, 16, illetve 32 bites regiszterként is használható (visszafelé kompatibilitás) 5

Adattípusok Numerikus Egész számok: tipikusan 8, 16, 32 és 64 bites, előjeles vagy előjel nélküli Lebegőpontos számok: leggyakrabban 32, 64 vagy 128 bites Binárisan kódolt decimális (BCD) számok Nem numerikus Karakteres: ASCII (7bit), UNICODE (16bit) Logikai: Boolean (1bit); gyakorlatban 1 bájt vagy 1 szó hosszúságú helyet igényel Bittérkép: logikai értékek teljes tömbje, pl 32 bit = 32 logikai érték Mutató: memóriacím tárolására 6

Adattípusok - példa Pentium 4 Támogatja az előjeles és előjel nélküli egész, BCD és lebegőpontos számokat 8,16 bites egészek, 8 bites ASCII karakterek Nem követeli meg az operandusok igazítását a memóriában (csak célszerű) Típus 1 bit 8 bit 16 bit 32 bit 64 bit 128 bit Bit Előjeles egész x x x Előjel nélküli egész x x x Binárisan kódolt decimális x Lebegőpontos x x 7

Utasításformátumok Utasítások felépítése Általában minden utasítás követi a műveleti kód + operandus(ok) + eredmény helye struktúrát Címzés: az az általános módszer mely meghatározza az operandusok helyét (címét) Leggyakoribbak a nulla, egy-, két- és háromcímes utasítások Azonos vagy változó hosszúságú utasítások 8

Címzési módszerek Közvetlen címzés Az operandust nem címmel, hanem közvetlenül adjuk meg az utasításban MOV R1, 4 Direkt címzés Az operandust teljes címével adjuk meg MOV R1, 0xe234h Regisztercímzés Az operandust nem címével,hanem egy regiszterrel adjuk meg MOV R1, R2 9

Címzési módszerek Regiszter-indirekt címzés Memóriabeli operandus címe egy regiszterben található (mutató) Előnye: memóriacímet nem az utasításban kell tárolni és végrehajtásonként változhat a cím ADD R1, (R2) Indexelt címzés A memóriacímet egy regiszter és egy konstans értéke együttesen határozza meg. MOV R4, A(R2) 10

Címzési módszerek Bázis-index címzés A memóriacím két regiszter és esetleg egy eltolási érték összegéből határozható meg MOV R4, (R2+R5) Veremcímzés Egy lehetséges alkalmazás a nulla címes utasításformára (pl összes regiszter elmentése egy utasítással a verembe) PUSHF flagek verembe; POPF flagek veremből 11

Utasítástípusok Pentium4 Adatmozgató Regiszter-memória, memória-regiszter és regiszter-regiszter irányú adatmásolás Hétköznapi értelmezéstől eltérően a forráshelyen lévő adat változatlanul megmarad, annak egy másolata jön létre a célhelyen! MOV, PUSH, POP, stb. Aritmetikai és logikai Alapműveletek, inkrementáló és dekrementáló, bitenkénti logikai műveletek ADD, SUB, MUL, DIV, INC, DEC, AND, OR, NOT, XOR Binárisan kódolt decimális BCD számokon végzett műveletek utáni korrekciók DAA, DAS 12

Utasítástípusok Pentium4 Léptető és forgató Bitenkénti léptetés vagy forgatás jobbra vagy balra SAL, SAR, ROL, ROR Tesztelő és összehasonlító Két operandus eredménye a az EFLAGS regiszterben tárolódik TST, CMP Vezérlésátadó Feltételes (a feltételbitek valamelyike alapján) és feltétel nélküli elágazás Jxx, JMP, CALL, RET, IRET, LOOPxx 13

Utasítástípusok Pentium4 Karakterlánc Karakterláncokkal kapcsolatos műveletek LODS, STOS, MOVS Feltételkódok EFLAGS egyes bitjeinek módosítása, a regiszter és verem közötti műveletek STC, CLC, PUHFD, POPFD Egyéb utasítások Egyik előző kategóriába sem sorolható utasítás SWAP, NOP, HLT, IN, OUT, WAIT 14