Assembler - 2.část. poslední změna této stránky: Zpět
|
|
- Pavel Kolář
- před 7 lety
- Počet zobrazení:
Transkript
1 1 z :51 Assembler - 2.část poslední změna této stránky: Příznaky (flagy) Zpět Flagy (česky podivně "příznaky", proto používám výhradně anglický název) jsou výlučnou záležitostí assembleru a ve vyšších jazycích se nevyskytují. Jsou to bity pro dva různé účely. První typ flagu, aritmetický, se nastavuje automaticky při provádění určitých instrukcí. Potom lze flagy číst a zjišťovat tak určité situace. Druhý typ flagu se nastavuje speciální instrukcí a slouží k přepínání CPU do určitých režimů práce. Flagy jsou enormně důležité, takže se jim budeme věnovat podrobně. Flagy jsou uloženy v samostatném 32bitovém registru eflags alias f. Je jich tedy 32 (co bit, to flag), ovšem některé z nich se používají dohromady (když jeden bit poskytující jen dva stavy nestačí). Některé flagy určují režim práce CPU, takže jejich změnou docílíte jen zhroucení počítače (v DOSu) nebo vyvolání výjimky (v normálním systému). Jelikož CPU nemá žádné příkazy jako if nebo while, musíme cykly a podmíněné příkazy řešit pomocí flagů. Následuje seznam aritmetických flagů, které jsou ovlivňovány výsledkem aritmetických instrukcí. značka název Z=E zero equal popis výsledek je nula operandy jsou si rovny A above 1.operand je větší (u) B=C below carry 1.operand je menší (u) přetečení nebo podtečení G greater 1.operand je větší (s) L lower 1.operand je menší (s) Rozdíl mezi A-B a G-L je jasný. První dvojice je unsigned, zatímco druhá je signed. Aby to šlo dokázat, můsíme si ukázat, jak se s flagy pracuje. Z uvedených flagů A-B a G-L navíc žádný fyzicky neexistuje (snad kromě B, který je identickýž s C), jsou to jen symbolické zkratky zahrnující ve skutrečnosti několik jiných flagů. To však pro programátora není podstatné.
2 2 z :51 Instrukce Jcc (podmíněný skok = skok při splnění určité podmínky) Jcc address ("jump conditional-code") Pro podmíněné příkazy máme k dispozici příkazy skoku označované souborně jako Jcc, které mají název složený z písmene j (jump) a písmene flagu (conditional-code). Flagy také můžete kombinovat a dostat tak vlastnosti jako le (menší nebo rovno) apod. Můžete taky testovat, zda je flag negovaný předřazením písmene n. Tak vznikne instrukce jng (jump if not greater), která je totožná s jle (jump if lower or equal). Podmíněnými skoky můžete skákat pouze na adresy +/-127 bajtů (signed byte), ovšem toto omezení v praxi nepoznáte, jelikož assembler automaticky nahrazuje vzdálené skoky "opisem" a nové procesory mají již vzdálené podmíněné skoky přímo v instrukční sadě. (Pojem "vzdálený podmíněný skok" zde znamená skok za hranici +/- 127 bajtů.) Ukážeme si příklad jak inkrementovat 64bitovou proměnnou. hyper superlong; //64bitová proměnná v MSVC _asm { inc dword ptr superlong //inkrementuje dolních 32 bitů jnz skip //přeskočí další příkaz, pokud nedošlo k přetečení inc dword ptr superlong+4 //inkrementuje horních 32 bitů } skip: Konstukce if-then-else Konstrukci if-then-else běžnou ve vyšších programovacích jazycích lze zapsat například takto: ;testujeme if(a<b) mov ax,a mov bx,b sub ax,bx jnc else_blok ;skok když a>=b...podmínka platí... jmp end_if else_blok:...podmínka neplatí... end_if: Nevýhodou při porovnávání je, že musíme načíst do registru jedno z porovnávaných čísel a provedením sub hodnotu ztratíme. Proto existuje
3 3 z :51 instrukce cmp. Instrukce cmp ("compare") Instrukce test ("test") Instrukce cmp provede sub bez uložení výsledku. Používá se pro obvyklé aritmetické porovnávání (větší, meněí, rovno). Instrukce test provede and bez uložení výsledku. Používá se pro bitové porovnávání. Můžeme pak nahradit začátek příkazu if takto: mov eax,a cmp eax,b jnb else_blok ;skok když a>=b Poznámka: Instrukce jnc a jnb jsou totožné, protože carry je nastaveno právě když první operand je menší. Důležité! Instrukce jmp, jcc a mov nikdy nemění hodnoty flagů. Ostatní instrukce flagy většinou mění, ale zase ne vždy všechny, takže je potřeba se to naučit podrobně - viz referenční tabulku instrukcí. Dívat se do helpu kvůli tak základním instrukcím není z praktického hlediska (časově) možné. Pozor! Typickou a jednou z nejčastějších chyb je následující kód: //toto fungovat nebude inc dword ptr superlong jnc skip inc dword ptr superlong+4 skip: Instrukce inc a dec nikdy nemění flag carry! Instrukce adc ("add with carry") Práci si nejvíc ušetříte, když budete v takových situacích používat instrukci adc, která k výsledku součtu ještě přičte hodnotu carry před provedením instrukce.
4 4 z :51 hyper superlong; //64bitová proměnná v MSVC _asm { add dword ptr superlong,1 //inkrementuje dolních 32 bitů adc dword ptr superlong+4,0 //přičte carry flag k horním 32 bitům } skip: Pozor! První ze dvou řádků asm jsme museli původní inc nahradit za add, protože inc/dec nemění carry flag. Strukturované konstrukce while a for si teď už snadno odvodíte. Taky už můžete dokázat, proč Z=E a B=C. Následující tabulka ukazuje všechny podporované kombinace flagů pro podmíněné skoky.
5 5 z :51
6 6 z :51 A na závěr kompletní seznam flagů tak, jak jsou fyzicky uloženy v eflags registru. Tato struktura je závazná pro všechny x86 procesory. Závěrečné shrnutí
7 Na závěr se tedy přestaňme vodit za nos a podívejme se na SKUTEČNOU funkci flagů. Flagy pro aritmetické operace (add, sub, cmp, and, or, xor, bitové posuny a rotace): C (Carry) Při sčítání (add): CF je nastaven, když dojde k přetečení výsledku, tj. výsledek se nevleze do paměťové buňky. Při odčítání (sub, cmp): CF je nastaven, když dojde k podtečení výsledku, tj. odčítá se větší číslo od menšího a výsledek se nevleze do paměťové buňky. CF je základním a nejdůležitějším flagem. Nastavují ho všechny instrukce, u kterých může dojít k přetečení nebo podtečení bitu, tedy i instrukce násobení, dělení, bitových posunů a rotací, atp. Pouze instrukce inc a dec tento flag neovlivňují (nechávají předešlou hodnotu). Příklady (sčítání a odčítání 8bitových hodnot): 2+5=7, CF= =4, CF=1 5-2=3, CF= =16, CF=1 P (Parity) Určuje paritu dolních 8bitů výsledku. Parita závisí na počtu jedničkových bitů v dolních 8 bitech výsledku. P=1 při sudé paritě (sudý počet jedniček), P=0 při liché paritě (lichý počet jedniček). Příklady: 0=00b: P=1 1=01b: P=0 2=10b: P=0 3=11b: P=1 257= b: P=0, protože se započítává jen dolních 8 bitů A (Auxiliary) Funguje přesně stejně jako CF, ale pro přenosy mezi 3. a 4. bitem. Má využití v matematických operacích v BCD a ASCII kódu. Tyto instrukce probírat nebudeme, takže AF vás nemusí zajímat. POZOR! Zde uvedený AF nemá nic společného s písmenem A použitým pro podmíněné skoky (ja/jna/jae/jnae). Pro AF neexistují podmíněné skoky. Z (Zero) S (Sign) ZF je nastaven, právě když je výsledkem nula. Lze ho použít ve všech aritmetických instrukcích. Při porovnávání (cmp) je ZF nastaven právě když jsou si porovnávané hodnoty rovny (vyplývá to z toho, že cmp odpovídá odčítání sub). SF vždy obsahuje kopii nejvyššího bitu výsledku, tedy znaménko. SF=0 pro kladná čísla, SF=1 pro záporná čísla. 7 z :51
8 8 z :51 O (Overflow) OF je komplikovaný flag, nutný pro aritmetiku v doplňkovém kódu, čili pro práci se znaménkovými (signed) hodnotami. OF=1 když v operaci došlo k přenosu do nejvyššího bitu výsledku, ale nikoliv z nejvyššího bitu, nebo opačně. OF=0 ve všech ostatních případech. Otázkou je, nakolik je zde šťastné používat vazbu "přenos do..." při jednotlivých operacích. Možná by bylo z hlediska programátora jednodušší OF definovat takto: OF=1 když v operaci došlo k přetečení (signed) - čili signed výsledek je mimo rozsah platných hodnot OF=0 když k přetečení nedošlo, tedy signed výsledek se vejde do rozsahu platných hodnot Poznámka: Funkce OF je naprosto klíčová. Stojí na něm totiž porovnávání signed čísel a podmíněné skoky typu G-L. Pro programátora naštěstí většinou není klíčové přesně rozumět tomuto flagu, stačí chápat princip porovnávání pomocí cmp a skoků G-L. Rozdíl mezi CF a OF: Na obyčejném sčítání si ukážeme rozdíl signed a unsigned aritmetiky. operace 255+1: výsledek=0, CF=1, OF=0 operace 127+1: výsledek=(-)128, CF=0, OF=1 Úplně stejné rozdíly jsou i v dalších podmíněných skocích (dvojice podmíněných skoků jb-jl a ja-jg). Řídící flagy (nekompletní seznam, ostatní používá jen operační systém): T (Trap) Pokud je nastaven, procesor se přeruší po vykonání každé instrukce. Používá se při krokování (což je určitý způsob ladění, protipirátské ochrany, anebo naopak jejího odstaňování). Při běžném programování nemá pro programátora význam. Použití: Nikdy nezapisujete ani nečtete. Většinou je TF=0, ale nespoléhejte na to!!! I (Interrupt) Nulování IF způsobí maskování (zakázání) všech přerušení typu MI (maskable interrupts). Operační systém by měl tento flag blokovat, tj. nedovolit aplikaci maskovat přerušení. Výjimkou je MS-DOS, kde se IF používá velmi často. Použití: Ve starém DOSu povolujete přerušení instrukcí sti, zakazujete instrukcí cli. Ve Windows je vždy IF=1, obě instrukce jsou privilegované, takže proces nemá právo hodnotu IF měnit (kromě DOS-VM, kde instrukce vyvolá výjimku a obsluha ji ignoruje a pokračuje v provádění kódu). D (Direction) DF=0 způsobí zvyšování adres při provádění blokových (řetězcových) instrukcí. DF=1 způsobí snižování adres při provádění blokových (řetězcových) instrukcí. POZOR! Platí nepsané pravidlo, že vyšší programovací jazyky vždy udržují DF=0. Pokud budete ve svém kódu potřebovat DF=1, nezapomeňte po provedení blokové operace vrátit stav zpět na DF=0. Použití: Udržjete stav DF=0. Flag nastavíte na jedničku pomocí std, potom co nejdříve zase vrátíte zpět na nulu pomocí cld,
9 9 z :51 alternativně můžete (a je to tak bazpečnější) použít pushf/popf. IOPL Určuje úroveň oprávnění procesu. V DOSu pochopitelně nemá význam, ve Windows je vždy úroveň 3 (nejnižší), a to včetně operačního systému a jeho driverů, pouze s výjimkou kernelu (jádra systému, ke kterému se stejně nikdy nedostanete). Použití: IOPL nelze přímo měnit. (Viz literatura - IOPL lze měnit jen skokem do jiného segmentu, jehož deskriptor má IOPL vetší nebo rovno volajícímu procesu, anebo pomocí brány (gate) do procesu s nižším IOPL.) Zpět
8. Laboratoř: Aritmetika a řídicí struktury programu
8. Laboratoř: Aritmetika a řídicí struktury programu Programy v JSA aritmetika, posuvy, využití příznaků Navrhněte a simulujte v AVR studiu prográmky pro 24 bitovou (32 bitovou) aritmetiku: sčítání, odčítání,
VíceRegistry 32 bitové pro všeobecné použití: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP.
1 Procesor i486 a vyšší - úvodní seznámení Procesory i486 a vyšší jsou v technické literatuře dobře dokumentovány, ale dokumentace je rozsáhlá a obsahuje pro začínajícího i zkušeného programátora mnoho
VícePopis instrukční sady procesoru ADOP
instrukční sady procesoru ADOP ČVUT FEL, 2008 K. Koubek, P. Bulena Obsah instrukční sady...5 Univerzální registry...5 Registr příznaků FR...5 Standardní význam příznaků...6 Přehled instrukcí...7 ADD Add...8
Vícev aritmetické jednotce počíta
v aritmetické jednotce počíta tače (Opakování) Dvojková, osmičková a šestnáctková soustava () Osmičková nebo šestnáctková soustava se používá ke snadnému zápisu binárních čísel. 2 A 3 Doplněné nuly B Číslo
VíceStruktura a architektura počítačů (BI-SAP) 7
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 7 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
VíceStrojový kód. Instrukce počítače
Strojový kód Strojový kód (Machine code) je program vyjádřený v počítači jako posloupnost instrukcí procesoru (posloupnost bajtů, resp. bitů). Z hlediska uživatele je strojový kód nesrozumitelný, z hlediska
VíceSeznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051
051 Seznámení s mikropočítačem Architektura mikropočítače Instrukce Paměť Čítače Porovnání s AT89C2051 Seznámení s mikropočítačem řady 8051 Mikroprocesor řady 8051 pochází z roku 1980 a je vytvořené firmou
VícePředmluva 13 Použité konvence 14. KAPITOLA 1 Základní číselné soustavy a pojmy Číselné soustavy a převody 15 1.
7 Předmluva 13 Použité konvence 14 KAPITOLA 1 Základní číselné soustavy a pojmy 15 1.1 Číselné soustavy a převody 15 1.2 Datové typy 18 KAPITOLA 2 Seznámení s mikroprocesory řady x86 21 2.1 Počítač obecně
VíceProgram "Světla" pro mikropočítač PMI-80
Program "Světla" pro mikropočítač PMI-80 Dokument věnovaný mikropočítači PMI-80, jeho programování a praktickým ukázkám. Verze dokumentu:. Autor: Blackhead Datum: rok 1997, 4.3.004 1 Úvod Tento program
VíceKubatova 19.4.2007 Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR. 2007-Kubátová Y36SAP-strojový kód 1
Y36SAP 8 Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR 2007-Kubátová Y36SAP-strojový kód 1 Architektura souboru instrukcí, ISA - Instruction Set Architecture Vysoká Architektura
VícePetr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 1 / 21
Operační systémy Úvod do Operačních Systémů Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 1 / 21 Organizační informace email: petr.krajca@upol.cz
VíceArchitektura počítačů Logické obvody
Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Digitální
VíceČinnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus
Činnost CPU Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Hodinový cyklus CPU je synchronní obvod nutné hodiny (f CLK ) Instrukční cyklus IF = doba potřebná
VíceČíselné vyjádření hodnoty. Kolik váží hrouda zlata?
Čísla a logika Číselné vyjádření hodnoty Au Kolik váží hrouda zlata? Dekadické vážení Když přidám osmé závaží g, váha se převáží => závaží zase odeberu a začnu přidávat závaží x menší 7 závaží g 2 závaží
VíceArchitektura počítačů Logické obvody
Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 2/36 Digitální
VíceData v počítači. Informační data. Logické hodnoty. Znakové hodnoty
Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)
VícePrincip funkce počítače
Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování
VíceÚroveň strojového kódu procesor Intel Pentium Úvod
Úroveň strojového kódu procesor Intel Pentium Úvod Štruktúra procesorov Intel Pentium Základné inštrukcie Vetvenia a cykly Praktické programovanie jednoduchých assemblerových funkcií Autor: Peter Tomcsányi,
VícePohled do nitra mikroprocesoru Josef Horálek
Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická
Vícex86 assembler and inline assembler in GCC
x86 assembler and inline assembler in GCC Michal Sojka sojkam1@fel.cvut.cz ČVUT, FEL License: CC-BY-SA 4.0 Useful instructions mov moves data between registers and memory mov $1,%eax # move 1 to register
VíceStruktura a architektura počítačů (BI-SAP) 5
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 5 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
VíceISU Cvičení 7. Marta Čudová
ISU Cvičení 7 Marta Čudová Supercomputing Technologies Research Group Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole icudova@fit.vutbr.cz Osnova
VíceISU Cvičení 3. Marta Čudová
ISU Cvičení 3 Marta Čudová Supercomputing Technologies Research Group Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole icudova@fit.vutbr.cz Program
VíceStruktura a architektura počítačů (BI-SAP) 6
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 6 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
VíceProcesor z pohledu programátora
Procesor z pohledu programátora Terminologie Procesor (CPU) = řadič + ALU. Mikroprocesor = procesor vyrobený monolitickou technologií na čipu. Mikropočítač = počítač postavený na bázi mikroprocesoru. Mikrokontrolér
VíceAssembler - 4.část. poslední změna této stránky: 9.2.2007. Zpět
1 z 11 19.2.2007 7:51 Assembler - 4.část poslední změna této stránky: 9.2.2007 Zpět 1. Proměnlivý počet parametrů Funkce s proměnlivým počtem parametrů lze v Assembleru implementovat stejně jako v C++.
VíceStrojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).
Strojový kód k d a asembler procesoru MIPS Použit ití simulátoru SPIM K.D. - cvičení ÚPA 1 MIPS - prostředí 32 ks 32bitových registrů ( adresa registru = 5 bitů). Registr $0 je zero čte se jako 0x0, zápis
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VíceStrojový kód, assembler, emulátor počítača
Strojový kód, assembler, emulátor počítača Návrh architektúry hypotetického procesora Strojový kód Assemblerový jazyk Programovanie v assemblerovom jazyku: Lineárny program Vetvenie Cyklus Emulátor počítača
VíceJako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.
Model procesoru Jedná se o blokové schéma složené z registrů, paměti RAM, programového čítače, instrukčního registru, sčítačky a řídicí jednotky, které jsou propojeny sběrnicemi. Tento model má dva stavy:
VíceČísla, reprezentace, zjednodušené výpočty
Čísla, reprezentace, zjednodušené výpočty Přednáška 5 A3B38MMP kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2015, J.Fischer, ČVUT - FEL, kat. měření 1 Čísla 4 bitová dec bin. hex. 0 0000 0 1 0001
VíceKubatova Y36SAP 9. Strojový kód ISA architektura souboru instrukcí střadačově, zásobníkově orientovaná, GPR Kubátová Y36SAP-ISA 1
Y36SAP 9 Strojový kód ISA architektura souboru instrukcí střadačově, zásobníkově orientovaná, GPR 2007-Kubátová Y36SAP-ISA 1 Architektura souboru instrukcí, ISA - Instruction Set Architecture Vysoká Architektura
VíceKubatova 19.4.2007 Y36SAP - 13. procesor - control unit obvodový a mikroprogramový řadič RISC. 19.4.2007 Y36SAP-control unit 1
Y36SAP - 13 procesor - control unit obvodový a mikroprogramový řadič RISC 19.4.2007 Y36SAP-control unit 1 Von Neumannova architektura (UPS1) Instrukce a data jsou uloženy v téže paměti. Paměť je organizována
VíceFaculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Assembler pro Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zápis instrukcí umíme už zapisovat instrukce v binárním tvaru to je silně nešikovné pro snazší vývoj
VíceOpakování programování
Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
Více5 Přehled operátorů, příkazy, přetypování
5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování
VícePrincipy komunikace s adaptéry periferních zařízení (PZ)
Principy komunikace s adaptéry periferních zařízení (PZ) Několik možností kategorizace principů komunikace s externími adaptéry, např.: 1. Podle způsobu adresace registrů, které jsou součástí adaptérů.
VíceY36SAP - aritmetika. Osnova
Y36SAP - aritmetika Čísla se znaménkem a aritmetické operace pevná a pohyblivá řádová čárka Kubátová 2007 Y36SAP-aritmetika 1 Osnova Zobrazení záporných čísel Přímý, aditivní a doplňkový kód a operace
VíceProcesory, mikroprocesory, procesory na FPGA. 30.1.2013 O. Novák, CIE 11 1
Procesory, mikroprocesory, procesory na FPGA 30.1.2013 O. Novák, CIE 11 1 Od sekvenčních automatů k mikroprocesorům 30.1.2013 O. Novák, CIE 11 2 30.1.2013 O. Novák, CIE 11 3 Architektura počítačů Von Neumannovská,
VíceAlgoritmizace a programování
Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech
VícePascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7
Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí
VícePohled do nitra mikroprocesoru
Pohled do nitra mikroprocesoru Obsah 1. Pohled do nitra mikroprocesoru 2. Architektury mikroprocesorů 3. Organizace cvičného mikroprocesoru 4. Registry v mikroprocesoru 5. Aritmeticko-logická jednotka
VíceFaculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zjednodušené schéma systému z základ hardware pro mainframe tvoří: operační pamět - MAIN / REAL STORAGE jeden
VíceArchitektury VLIW M. Skrbek a I. Šimeček
Architektury VLIW M. Skrbek a I. Šimeček xsimecek@fit.cvut.cz Katedra počítačových systémů FIT České vysoké učení technické v Praze Ivan Šimeček, 2011 MI-PAP, LS2010/11, Predn.3 Příprava studijního programu
Vícea operačních systémů
NSWI2 2/2 ZS Principy počítačů a operačních systémů INSTRUKCE Kdybych nařídil generálovi, aby létal od květině ke květině a on by rozkaz neprovedl, nebyla by to chyba generálova, ale moje. král asteroidu
VíceZpůsoby realizace této funkce:
KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je výstup určen jen výhradně kombinací vstupních veličin. Hodnoty výstupních veličin nezávisejí na předcházejícím stavu logického obvodu, což znamená, že kombinační
VíceLEKCE 6. Operátory. V této lekci najdete:
LEKCE 6 Operátory V této lekci najdete: Aritmetické operátory...94 Porovnávací operátory...96 Operátor řetězení...97 Bitové logické operátory...97 Další operátory...101 92 ČÁST I: Programování v jazyce
VíceArchitektura procesoru ARM
Architektura procesoru ARM Bc. Jan Grygerek GRY095 Obsah ARM...3 Historie...3 Charakteristika procesoru ARM...4 Architektura procesoru ARM...5 Specifikace procesoru...6 Instrukční soubor procesoru...6
VíceE. Pohyblivářádováčárka
E. Pohyblivářádováčárka pevná a pohyblivá řádová čárka formát US Air Force MIL-STD-1750A základní operace normalizace přetečení a nenaplnění formátbflm 1 přímý kód sčítání a odčítání násobení, dělení a
VíceMQL4 COURSE. By Coders guru www.forex-tsd.com. -4 Operace & Výrazy
MQL4 COURSE By Coders guru www.forex-tsd.com -4 Operace & Výrazy Vítejte ve čtvrté lekci mého kurzu MQL4. Předchozí lekce Datové Typy prezentovaly mnoho nových konceptů ; Doufám, že jste všemu porozuměli,
VíceY36SAP. Osnova. Číselné soustavy a kódy, převody, aritmetické operace Y36SAP Poziční číselné soustavy a převody.
Y36SAP Číselné soustavy a kódy, převody, aritmetické operace Tomáš Brabec, Miroslav Skrbek - X36SKD-cvičení. Úpravy pro SAP Hana Kubátová Osnova Poziční číselné soustavy a převody Dvojková soust., převod
VícePJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných
PJC Cvičení #2 Číselné soustavy a binární reprezentace proměnných Číselné soustavy Desítková (decimální) kdo nezná, tak...!!! Dvojková (binární) - nejjednodušší Šestnáctková (hexadecimální) - nejpoužívanější
Více1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
VíceČíselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy
Ústav radioelektroniky Vysoké učení technické v Brně Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy Přednáška 8 doc. Ing. Tomáš Frýza, Ph.D. listopad 2012 Obsah
VícePřednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.
Přednáška 7 Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu
VíceČísla, reprezentace, zjednodušené výpočty
Čísla, reprezentace, zjednodušené výpočty Přednáška 4 A3B38MMP kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 1 Čísla 4 bitová dec bin. hex. 0 0000 0 1 0001
VíceBI-JPO (Jednotky počítače) Cvičení
BI-JPO (Jednotky počítače) Cvičení Ing. Pavel Kubalík, Ph.D., 2010 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Evropský sociální fond Praha & EU: Investujeme
VíceAssembler - 5.část. poslední změna této stránky: Zpět
1 z 5 19.2.2007 7:52 Assembler - 5.část poslední změna této stránky: 9.2.2007 1. Pseudoinstrukce a direktivy Zpět Kromě instrukcí můžete v Assembleru psát také další konstrukce, které se obšem nepřekládají
VíceArchitektury počítačů a procesorů
Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní
VíceREbejs. 1. workshop (draft0)
REbejs 1. workshop (draft0) Pojetí workshopu 1 14 dní Rychle a prakticky Teorie až později Podrobný slidy s klikacíma URL ke stažení na wiki Trochu ARM Crackme: jednoúčelový program pro reverzování, bez
Více3 Jednoduché datové typy 2 3.1 Interpretace čísel v paměti počítače... 3. 4 Problémy s matematickými operacemi 5
Obsah Obsah 1 Číselné soustavy 1 2 Paměť počítače 1 2.1 Měření objemu paměti počítače................... 1 3 Jednoduché datové typy 2 3.1 Interpretace čísel v paměti počítače................. 3 4 Problémy
VíceMSP 430F1611. Jiří Kašpar. Charakteristika
MSP 430F1611 Charakteristika Mikroprocesor MSP430F1611 je 16 bitový, RISC struktura s von-neumannovou architekturou. Na mikroprocesor má neuvěřitelně velkou RAM paměť 10KB, 48KB + 256B FLASH paměť. Takže
VíceProgram a životní cyklus programu
Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy
VíceFunkce, podmíněný příkaz if-else, příkaz cyklu for
Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto
VíceAritmetické operace a obvody pro jejich realizaci
Kapitola 4 Aritmetické operace a obvody pro jejich realizaci 4.1 Polyadické číselné soustavy a jejich vlastnosti Polyadické soustavy jsou určeny přirozeným číslem z, kterému se říká základ nebo báze dané
VíceOperační systémy 2. Přednáška číslo 1. Úvod do OS
Operační systémy 2 Přednáška číslo 1 Úvod do OS Co je to operační systém (definice) Operační systém jsou ty programové moduly ve výpočetním systému, jež ovládají řízení prostředku, jimiž je tento výpočetní
VíceInstrukční sada pro používání ControlLogix a CompactLogix výňatek
Instrukční sada pro používání ControlLogix a CompactLogix výňatek V této části uvedeme několik instrukcí potřebných pro řešení laboratorních úloh v předmětu BPGA. Uvádíme jenom část instrukcí, v případě
VíceProfilová část maturitní zkoušky 2014/2015
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2014/2015 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika
VíceC2115 Praktický úvod do superpočítání
C2115 Praktický úvod do superpočítání IX. lekce Petr Kulhánek, Tomáš Bouchal kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137
VíceMetody připojování periferií BI-MPP Přednáška 2
Metody připojování periferií BI-MPP Přednáška 2 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011
VíceProgramování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9)
Programování v C++ Úplnej úvod Co se naučíte? tak samozřejmě C++, s důrazem na: dynamické datové struktury Objektově Orientované Programování STL (standardní knihovna šablon) vytváření vlastních šablon
VíceRISC a CISC architektura
RISC a CISC architektura = dva rozdílné přístupy ke konstrukci CPU CISC (Complex Instruction Set Computer) vývojově starší přístup: pomoci konstrukci překladače z VPP co nejpodobnějšími instrukcemi s příkazy
VícePočítač jako prostředek řízení. Struktura a organizace počítače
Řídicí počítače - pro řízení technologických procesů. Specielní přídavná zařízení - I/O, přerušovací systém, reálný čas, Č/A a A/Č převodníky a j. s obsluhou - operátorské periferie bez obsluhy - operátorský
VíceAkademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:
Západočeská univerzita v Plzni Písemná zkouška z předmětu: Zkoušející: Katedra informatiky a výpočetní techniky Počítačová technika KIV/POT Dr. Ing. Karel Dudáček Akademický rok: 2004/05 Datum: Příjmení:
VíceTestování jednotky ALU a aplikace metody FMEA
Testování jednotky ALU a aplikace metody FMEA Bc. Jiří Sobotka, Vysoké Učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav telekomunikací, Purkyňova 118, 612 00 Brno, Česká
VícePřerušovací systém s prioritním řetězem
Přerušovací systém s prioritním řetězem Doplňující text pro přednášky z POT Úvod Přerušovací systém mikropočítače může být koncipován několika způsoby. Jednou z možností je přerušovací systém s prioritním
VíceŘízení IO přenosů DMA řadičem
Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována
VíceZákladní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly
Počítačové systémy Zobrazení čísel v počítači Miroslav Flídr Počítačové systémy LS 2007-1/21- Západočeská univerzita v Plzni Vážený poziční kód Obecný předpis čísla vyjádřeného v pozičním systému: C =
VíceLogické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární
VíceMikrořadiče řady 8051.
Mikrořadiče řady 8051 Řada obvodů 8051 obsahuje typy 8051AH, 8031AH, 8751H, 80C51, 80C31, 8052 a 8032 Jednotlivé obvody se od sebe liší technologií výroby a svojí konstrukcí Způsob programování je však
VíceOperace ALU. INP 2008 FIT VUT v Brně
Operace ALU INP 2008 FIT VUT v Brně 1 Princip ALU (FX) Požadavky: Logické operace Sčítání (v doplňkovém kódu) Posuvy/rotace Násobení ělení B A not AN OR XOR + Y 1) Implementace logických operací je zřejmá
VíceZpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.
Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb. 1. Informace o přijímacích zkouškách Studijní program: Informatika navazující magisterský
VíceVýrazy a operátory. Operátory Unární - unární a unární + Např.: a +b
Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -
Více1. Základní pojmy a číselné soustavy
1. Základní pojmy a číselné soustavy 1.1. Základní pojmy Hardware (technické vybavení počítače) Souhrnný název pro veškerá fyzická zařízení, kterými je počítač vybaven. Software (programové vybavení počítače)
VíceProfilová část maturitní zkoušky 2015/2016
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2015/2016 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika
VíceObsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
VíceAssembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz
Assembler RISC T.Mainzer, kiv.zcu.cz RISC RISC, neboli Reduced Instruction Set Computer - koncepce procesorů s redukovaným souborem instrukcí (vs. CISC, neboli Complex Instruction Set Computer, "bohatý"
VíceMIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY
MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Stručný úvod do programování v jazyce C 2.díl České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 07 Ver.1.10 J. Zděnek,
Více4-1 4. Přednáška. Strojový kód a data. 4. Přednáška ISA. 2004-2007 J. Buček, R. Lórencz
4-4. Přednáška 4. Přednáška ISA J. Buček, R. Lórencz 24-27 J. Buček, R. Lórencz 4-2 4. Přednáška Obsah přednášky Násobení a dělení v počítači Základní cyklus počítače Charakteristika třech základní typů
VíceDigitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.
Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Základní invertor v technologii CMOS dva tranzistory: T1 vodivostní kanál typ N T2 vodivostní kanál typ P při u VST = H nebo L je klidový proud velmi malý
VícePřednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
VíceNásobení pomocí sčítání
Neznalost zákonů neomlouvá Násobení pomocí sčítání Zadání problému: Vymyslete algoritmus, jak násobit dvě čísla, když operaci násobení neznáme. Upřesnění zadání: Známe čísla, známe operaci sčítání, odčítání.
VíceMikroprocesorová technika (BMPT)
Mikroprocesorová technika (BMPT) Přednáška č. 10 Číselné soustavy v mikroprocesorové technice Ing. Tomáš Frýza, Ph.D. Obsah přednášky Číselné soustavy v mikroprocesorové technice Dekadická, binární, hexadecimální
VíceKódováni dat. Kódy používané pro strojové operace
Kódováni dat Před zpracováním dat například v počítači je třeba znaky převést do tvaru, kterému počítač rozumí, tj. přiřadit jim určité kombinace bitů. Tomuto převodu se říká kódování. Kód je předpis pro
VíceStruktura a architektura počítačů (BI-SAP) 8
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 8 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
VíceMichal Brandejs. Mikroprocesory Intel 8086 80486
Michal Brandejs Mikroprocesory Intel 8086 80486 Copyright Michal Brandejs, 1991, 2010 Fakulta informatiky, Masarykova univerzita, Brno Michal Brandejs Mikroprocesory Intel 8086 80486 The following are
VíceProgramování I. Martin Pergel, perm@kam.mff.cuni.cz
30. září 2009 Informace o přednášce, cvičeních a Praktiku z programování Kurz je zakončen zápočtem, zkouška bude v létě. Informace o přednášce, cvičeních a Praktiku z programování Kurz je zakončen zápočtem,
VíceStruktura a architektura počítačů
Struktura a architektura počítačů Aritmetické operace Pevná a pohyblivá řádová čárka České vysoké učení technické Fakulta elektrotechnická Ver..2 J. Zděnek 23 Aritmetické operace pevná řádová čárka Pevná
Více