ISU Cvičení 7. Marta Čudová

Rozměr: px
Začít zobrazení ze stránky:

Download "ISU Cvičení 7. Marta Čudová"

Transkript

1 ISU Cvičení 7 Marta Čudová Supercomputing Technologies Research Group Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, Brno - Královo Pole icudova@fit.vutbr.cz

2 Osnova dnešního cvičení Úvod do skoků frame Volání podprogramu, předávání parametrů, lokální proměnné. PUSH, POP, CALL, RET, Řetězové instrukce Marta Čudová - ISU, 7. cvičení 2

3 Skoky Řídí tok programu Změna hodnoty v EIP -> skok Podmíněný skok (if-else) Využití v cyklech a podmínkách. Rozhodování podle příznaků v EFLAGS (ZF, CF) nebo ECX JZ, JE, JC, JCXZ, Nepodmíněný skok (goto) Skáče se vždy. Nevyhodnocuje se žádná podmínka, zda se skákat má nebo ne. JMP návěští Marta Čudová - ISU, 7. cvičení 3

4 Zásobník - opakování Velikost zásobníku je nastavena při sestavení programu. Pokud je dno nastavené na hodnotu 0xFF F, pak zásobník roste dolů k nižším adresám. Zásobník se vždy posouvá o násobky 4 ve 32bitovém režimu - minimálně o 4B PUSH val - val se uloží na vrchol zásobníku.. Nejprve ale podle velikosti operandu dekrementuje ESP (2/4B). PUSHA 16b registry se v tomto pořadí uloží na zásobník: AX, CX, DX, BX, SP, BP, SI, DI PUSHAD - 32b registry uloží na zásobník: EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI POP reg hodnotu na vrcholu zásobníku uloží do registru reg. Podle velikosti operandu inkrementuje ESP (2/4B). POPA, POPAD Příklad: swap(a, b) ;eax = a, ebx = b push eax mov eax, ebx; a = b pop ebx ; b = původní a Pushing: sub esp, 4 ; alokace mista mov [esp], X ; ulož na stack Marta Čudová - ISU, 7. cvičení 4

5 Aplikační paměť Typicky paměť přidělená programu může být rozdělena do 4 segmentů kódový (text), datový (statické a globální proměnné), stack a heap. Každý segment je odkazován ukazatelem v segment registru. frame (rámec zásobníku) množina hodnot vložených na zásobník v rámci jednoho volání funkce. Vytváří se při volání podprogramu, kdy jsou parametry předány přes zásobník. Jednotlivé prvky zásobníku jsou vyhrazeny pro: Parametry podprogramu Lokální proměnné podprogramu Návratová adresa z volajícího podprogramu (uložený EIP) Obsahuje minimálně návratovou adresu. Heap dynamická alokace Volný prostor lokální proměnné, argumenty funkcí, Neinicializovaná data fixní velikost určená v době kompilace Inicializovaná data Code (text) fixní velikost určená v době kompilace Marta Čudová - ISU, 7. cvičení 5

6 Podprogram Podprogram = (často využívaná) skupina instrukcí. Volá se jako samostatná část programu. Instrukce CALL dest Provede zavolání podprogramu - uložení parametrů do zásobníku a uložení návratové adresy na zásobník (EIP). Návratová adresa je adresa místa volajícího podprogramu, odkud se provedlo volání daného podprogramu. Přejde na návěští podprogramu dest Instrukce CALL zařizuje vše s výjimkou ukládání parametrů na zásobník (to dělá programátor). Odpovídá: push eip + 2 ; navratova adresa jmp _funkce Instrukce RET [int] Zabezpečuje návrat z podprogramu Do EIP uloží návratovou adresu z vrcholu zásobníku Volitelný parametr [int] odstraní ze zásobníku int hodnot velikosti byte (= úklid + správné nastavení ESP) Marta Čudová - ISU, 7. cvičení 6

7 frame - příklad int total; int Square(int x) return x*x; Nižší adresa int SquareOfSum(int x, int y) int z = Square(x+y); return z; int int a = 2; int b = 5; total = SquareOfSum(a, b); printf( Result: %d\n, total); Vyšší adresa Marta Čudová - ISU, 7. cvičení 7

8 frame - příklad int total; int Square(int x) return x*x; int SquareOfSum(int x, int y) int z = Square(x+y); return z; int int a = 2; int b = 5; total = SquareOfSum(a, b); printf( Result: %d\n, total); -frame pro funkci Square() -frame pro funkci SquareOfSum() 1. push a push b push y ; 2. param. push x ; 1. param. push return addr of Return address of SquareOfSum() x (parameter) Z (local var) Return address of x (parameter) y (parameter) b (local var) a (local var) total -frame pro funkci Marta Čudová - ISU, 7. cvičení 8

9 frame - příklad int total; int Square(int x) return x*x; int SquareOfSum(int x, int y) int z = Square(x+y); return z; int int a = 2; int b = 5; total = SquareOfSum(a, b); printf( Result: %d\n, total); 2. push z SquareOfSum() push x push return addr of SquareOfSum() -frame pro funkci SquareOfSum() Return address of SquareOfSum() x (parameter) Z (local var) Return address of x (parameter) y (parameter) b (local var) a (local var) total -frame pro funkci Square() -frame pro funkci Marta Čudová - ISU, 7. cvičení 9

10 frame - příklad int total; Návrat int Square(int x) return x*x; int SquareOfSum(int x, int y) int z = Square(x+y); return z; int int a = 2; int b = 5; total = SquareOfSum(a, b); printf( Result: %d\n, total); 1. pop return addr of SquareOfSum() -> Návrat řízení funkci SquareOfSum() Square() Return address of SquareOfSum() x (parameter) Z (local var) Return address of x (parameter) y (parameter) b (local var) a (local var) total Kdykoliv v rámci běhu programu je vždy spouštěna funkce na vrcholu zásobníku. Ostatní čekají. Marta Čudová - ISU, 7. cvičení 10

11 frame - příklad int total; int Square(int x) return x*x; 2. pop x ; clean the stack (za to zodpovida volany podprogram) ; návrat do main pop z pop return addr of int SquareOfSum(int x, int y) int z = Square(x+y); return z; int int a = 2; int b = 5; SquareOfSum() Z (local var) Return address of x (parameter) y (parameter) b (local var) a (local var) total = SquareOfSum(a, b); printf( Result: %d\n, total); total Kdykoliv v rámci běhu programu je vždy spouštěna funkce na vrcholu zásobníku. Ostatní čekají. Marta Čudová - ISU, 7. cvičení 11

12 frame - příklad int total; int Square(int x) return x*x; int SquareOfSum(int x, int y) int z = Square(x+y); return z; 3. pop x ; clean the stack pop y int int a = 2; int b = 5; total = SquareOfSum(a, b); printf( Result: %d\n, total); b (local var) a (local var) total Kdykoliv v rámci běhu programu je vždy spouštěna funkce na vrcholu zásobníku. Ostatní čekají. Marta Čudová - ISU, 7. cvičení 12

13 frame - příklad int total; int Square(int x) return x*x; 4. push par2 ; total push par1 ; string push return addr of int SquareOfSum(int x, int y) int z = Square(x+y); return z; int int a = 2; int b = 5; total = SquareOfSum(a, b); printf( Result: %d\n, total); Return address of Result: %d\n total b (local var) a (local var) total -frame pro funkci printf() Kdykoliv v rámci běhu programu je vždy spouštěna funkce na vrcholu zásobníku. Ostatní čekají. Marta Čudová - ISU, 7. cvičení 13

14 frame - příklad int total; int Square(int x) return x*x; int SquareOfSum(int x, int y) int z = Square(x+y); return z; 5. pop par1 ; clean the stack pop par2 int int a = 2; int b = 5; total = SquareOfSum(a, b); printf( Result: %d\n, total); b (local var) a (local var) total Kdykoliv v rámci běhu programu je vždy spouštěna funkce na vrcholu zásobníku. Ostatní čekají. Marta Čudová - ISU, 7. cvičení 14

15 frame - příklad int total; int Square(int x) return x*x; int SquareOfSum(int x, int y) int z = Square(x+y); return z; int int a = 2; int b = 5; total = SquareOfSum(a, b); printf( Result: %d\n, total); Kdykoliv v rámci běhu programu je vždy spouštěna funkce na vrcholu zásobníku. Ostatní čekají. Marta Čudová - ISU, 7. cvičení 15

16 Vytvoření/zničení zásobníkového rámce Vytvoření zásobníkového rámce: push ebp ; ulozeni EBP (pouzivala ho volající funkce) mov ebp, esp ; EBP=ESP ukazuje na vrchol zasobniku sub esp, X Zničení zásobníkového rámce: mov esp, ebp ; obnova ESP pop ebp ret [ebp- X] (ESP) ; posun ESP; alokace prostoru pro lokální proměnné na zásobníku, X odpovídá 4*počet_proměnných ; obnova původního EBP [ebp- 4] (1. lokální proměnná) FP [ebp] (stará hodnota EBP = frame pointer) RA [ebp+ 4] (návratová adresa) 10 [ebp+ 8] (1. argument funkce) 5 [ebp+12] (2. argument funkce) 2 [ebp+16] (3. argument funkce) Ukázka procedury, která přijímá 3 parametry a má vyhrazený prostor pro X/4 lokálních proměnných Marta Čudová - ISU, 7. cvičení 16

17 Několik poznámek K definici zásobníkového rámce (pohyb v něm) při volání podprogramů slouží EBP. Pro vytvoření a zničení zásobníkového rámce lze použít instrukce enter a leave Pokud chceme zavolat funkci, musíme nejprve na zásobník uložit parametry, které funkce vyžaduje (opačné pořadí než je zápis) a poté návratová adresa funkce, která volání provádí (resp. řádek, od kterého bude po návratu program pokračovat). Zásobník může přetéct stack overflow REP instrukce Opakuj instrukci tolikrát, kolik je uvedeno v registru ECX (provede: ECX -= 1, if ECX!= 0 then opakuj) REPNE, REPNZ, REPZ, REPE Marta Čudová - ISU, 7. cvičení 17

18 Řetězové instrukce MOVS, CMPS, SCAS, LODS, STOS, INS, OUTS Ukazatele na data jsou v registrech DS:ESI a ES:EDI Zdrojová data jsou uložena na adrese DS:ESI ( SI = Source Index) Cílová data jsou uložena na adrese ES:EDI ( DI = Destination Index) Instrukce pracují se slabikami (LODSB, SCASB, ), slovy (LODSW, MOVSW, ) nebo dvojslovy (LODSD, CMPSD, ) Instrukce automaticky zvyšuje/snižuje (podle DF) indexové registry ESI a EDI (o Byte/Word/DWord). Nastavení DF: instrukce CLD, STD CMPS, SCAS ovlivňují příznaky v EFLAGS. Marta Čudová - ISU, 7. cvičení 18

19 Díky za pozornost

ISU Cvičení 3. Marta Čudová

ISU 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íce

Assembler - 4.část. poslední změna této stránky: 9.2.2007. Zpět

Assembler - 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íce

Registry 32 bitové pro všeobecné použití: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP.

Registry 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íce

Assembler DRUHÁ ČÁST OBSAH.

Assembler DRUHÁ ČÁST OBSAH. DRUHÁ ČÁST OBSAH. 1. Knihovny DLL obecný popis. 2. Statické knihovny Dll - výstupní soubor.lib 3. Připojení statické knihovny do konzolové aplikace. 4. Tvorba vlastních API ve statické knihovně a připojení

Více

Strojový 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 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íce

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

Více

Procesor z pohledu programátora

Procesor 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íce

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

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 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íce

Petr Krajča. 26. říjen, 2012

Petr Krajča. 26. říjen, 2012 Operační systémy Řízení výpočtu Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 26. říjen, 2012 Petr Krajča (UP) KMI/YOS: Přednáška II. 26. říjen, 2012 1 / 18 Reprezentace hodnot záporná

Více

ISU Cvičení 2. Marta Čudová

ISU Cvičení 2. Marta Čudová ISU Cvičení 2 Marta Čudová Supercomputing Technologies Reseaŕch 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íce

Assembler x86. Studijní text pro předmět: Strojově orientované jazyky Petr Olivka. Katedra informatiky VŠB-TU Ostrava

Assembler x86. Studijní text pro předmět: Strojově orientované jazyky Petr Olivka. Katedra informatiky VŠB-TU Ostrava Assembler x86 Studijní text pro předmět: Strojově orientované jazyky Petr Olivka Katedra informatiky VŠB-TU Ostrava email: petr.olivka@vsb.cz http://poli.cs.vsb.cz c 2014 Obsah 1 Procesor i486 a vyšší

Více

x86 assembler and inline assembler in GCC

x86 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íce

ISU Cvičení 2. Marta Čudová

ISU Cvičení 2. Marta Čudová ISU Cvičení 2 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 Kdo

Více

REbejs. 1. workshop (draft0)

REbejs. 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íce

Jazyk symbolických adres

Jazyk symbolických adres Jazyk symbolických adres 1 Proč programovat v JSA Pro některé procesory resp. MCU jsou překladače JSA dostupnější. Některé překladače vyšších jazyků neumí využít určité speciální vlastnosti procesoru.

Více

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10 UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10 Využití zásobníku pro předání parametrů podprogramům a lokální proměnné Jan Dolinay Petr Dostálek Zlín

Více

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě Metody přidělování paměti Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě Důležitá hlediska jazykových konstrukcí: Dynamické typy Dynamické

Více

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě Metody přidělování paměti Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě Důležitá hlediska jazykových konstrukcí: Dynamické typy Dynamické

Více

Architektura počítačů. Instrukce a návrh instrukční sady. Lubomír Bulej KDSS MFF UK

Architektura počítačů. Instrukce a návrh instrukční sady. Lubomír Bulej KDSS MFF UK Architektura počítačů Instrukce a návrh instrukční sady Lubomír Bulej KDSS MFF UK Pro připomenutí: počítač je (jen) stroj Vykonává program Posloupnost instrukcí uložených v paměti. Vykoná instrukci a posune

Více

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz Semestrální práce z předmětu KIV/UPA Jan Bařtipán / A03043 bartipan@studentes.zcu.cz Zadání Program přečte ze vstupu dvě čísla v hexadecimálním tvaru a vypíše jejich součet (opět v hexadecimální tvaru).

Více

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW. p 1 Koncepce DMA Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW. Čekání na připravenost V/V Přenos paměť V/V nebo V/V paměť Posun pointeru

Více

Více o konstruktorech a destruktorech

Více o konstruktorech a destruktorech Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení

Více

Assembler - 3.část. poslední změna této stránky: 9.2.2007. Zpět

Assembler - 3.část. poslední změna této stránky: 9.2.2007. Zpět 1 z 7 19.2.2007 7:51 Assembler - 3.část poslední změna této stránky: 9.2.2007 Zpět 1. Externí assembler O externí assembler se jedná v případě, že máte zdroják v samostatném souboru s příponou ASM (některé

Více

8. Laboratoř: Aritmetika a řídicí struktury programu

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íce

Exploitace zranitelností. Obsah

Exploitace zranitelností. Obsah Obsah 1 Úvod... 4 1.1 Lockdown a hackerlab...4 1.2 Vaše ochrana... 4 2 Exploit... 5 2.1 Typy exploitů...5 3 Zranitelnost FTP serveru Cesar...5 3.1 Fuzzer ftp-fuzzer.py...5 3.1.1 Spuštění fuzzeru...7 4

Více

Operač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 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íce

Programování v C++ 2, 4. cvičení

Programování v C++ 2, 4. cvičení Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva

Více

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru

Více

Správa paměti. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016

Správa paměti. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016 Správa paměti Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016 Objektové modelování, B36OMO 10/2016, Lekce 2 https://cw.fel.cvut.cz/wiki/courses/xxb36omo/start

Více

IUJCE 07/08 Přednáška č. 6

IUJCE 07/08 Přednáška č. 6 Správa paměti Motivace a úvod v C (skoro vždy) ručně statické proměnné o datový typ, počet znám v době překladu o zabírají paměť po celou dobu běhu programu problém velikosti definovaných proměnných jak

Více

Assembler - 2.část. poslední změna této stránky: Zpět

Assembler - 2.část. poslední změna této stránky: Zpět 1 z 9 19.2.2007 7:51 Assembler - 2.část poslední změna této stránky: 9.2.2007 1. 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í

Více

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška II. 14. říjen, / 26

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška II. 14. říjen, / 26 Operační systémy Řízení výpočtu Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/YOS: Přednáška II. 14. říjen, 2016 1 / 26 Reprezentace hodnot záporná čísla jsou v doplňkovém

Více

Předmluva 13 Použité konvence 14. KAPITOLA 1 Základní číselné soustavy a pojmy Číselné soustavy a převody 15 1.

Př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íce

Architektura počítačů

Architektura počítačů Architektura počítačů Předávání parametrů funkcím a virtuálním instrukcím operačního systému České vysoké učení technické, Fakulta elektrotechnická Ver.1.10 1 Různé druhy volání funkcí a systému Volání

Více

Strojový kód. Instrukce počítače

Strojový 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íce

Kubatova 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

Kubatova 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íce

Opakování programování

Opaková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íce

Princip funkce počítače

Princip 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

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 1/24 Editační prostření Kód programu lze editovat v jakémkoli textovém editoru. 2/24 Editační prostření Kód

Více

Programátorský model x86

Programátorský model x86 Úvod Programátorský model x86 - programátorským modelem se rozumí soubor vlastností a fyzických souèástí procesoru, které ovlivòují jeho programování v nízkoúrovòových jazycích - zejména popisuje uspoøádání

Více

Konstruktory a destruktory

Konstruktory a destruktory Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,

Více

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce Universita Pardubice Fakulta elektrotechniky a informatiky Mikroprocesorová technika Semestrální práce Jméno: Chmelař Pavel Datum: 14. 5. 2008 Úkol: Příklad č. 1 V paměti dat je uložen blok 8 b čísel se

Více

Úroveň strojového kódu procesor Intel Pentium Úvod

Ú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íce

Michal Brandejs. Mikroprocesory Intel Pentium

Michal Brandejs. Mikroprocesory Intel Pentium Michal Brandejs Mikroprocesory Intel Pentium Copyright Michal Brandejs, 1994, 2010 Fakulta informatiky, Masarykova univerzita, Brno Michal Brandejs Mikroprocesory Intel Pentium The following are trademarks

Více

Struktura a architektura počítačů (BI-SAP) 7

Struktura 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íce

Architektury VLIW M. Skrbek a I. Šimeček

Architektury 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íce

Úroveň strojového kódu procesor Intel Pentium Zásobník a konvencie volania

Úroveň strojového kódu procesor Intel Pentium Zásobník a konvencie volania Úroveň strojového kódu procesor Intel Pentium Zásobník a konvencie volania Práca so zásobníkom Prenos parametrov do funkcie konvencia cdecl Aktivačný záznam procedúry Volanie služby Windows - konvencia

Více

Popis instrukční sady procesoru ADOP

Popis 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íce

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44 Algoritmizace a programování Ak. rok 2012/2013 vbp 1. ze 44 Vladimír Beneš Petrovický K101 katedra matematiky, statistiky a informačních technologií vedoucí katedry E-mail: vbenes@bivs.cz Telefon: 251

Více

IMTEE Přednáška č. 11

IMTEE Přednáška č. 11 AVR Libc pokračování interrupt.h práce s přerušením povolení / zakázání přerušení o makro sei() = instrukce sei o makro cli() = instrukce cli obslužné funkce vždy tvar ISR(JMENO_VEKTORU) // obslužný kod

Více

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti

Více

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru Cíl přednášky: Vysvětlit principy práce s registry v architekturách RISC a CISC, upozornit na rozdíly. Vysvětlit možnosti využívání sad registrů. Zabývat se principy využívanými v procesorech Intel. Zabývat

Více

Úvod do programování - Java. Cvičení č.4

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

Sdílení dat mezi podprogramy

Sdílení dat mezi podprogramy Sdílení dat mezi podprogramy Datové objekty mohou být mezi podprogramy sdíleny pomocí ne-lokálních referenčních prostředí, která jsou vytvářena na základě æ explicitních modifikací (formální parametry

Více

Registry 8*32bit ERn (=16*16bit En+Rn, 8*16bit+16*8bit En+RnH+RnL)

Registry 8*32bit ERn (=16*16bit En+Rn, 8*16bit+16*8bit En+RnH+RnL) POT (T.Mainzer) Přehled: CPU - pamět CU-ALU-Registers Memory (Address bus, data bus, control bus) Externí pamět pomalá registry, cache Procesor H8S Registry 8*32bit ERn (=16*16bit En+Rn, 8*16bit+16*8bit

Více

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný typem proměnné - ukazatel je tedy adresa společně s

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. 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íce

Easy Code 2.02 X86 použitelné instrukce.

Easy Code 2.02 X86 použitelné instrukce. Easy Code 2.02 X86 použitelné instrukce. Seznam instrukcí procesoru.686p 01.05.2019 Zpracoval: Pavlů Zdeněk Stručný seznam použitelných instrukcí v assembleru Easy Code v.2.02 pro 32bitů. Omlouvám se za

Více

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní

Více

Pointery II. Jan Hnilica Počítačové modelování 17

Pointery II. Jan Hnilica Počítačové modelování 17 Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky

Více

Architektury CISC a RISC, uplatnění v personálních počítačích

Architektury CISC a RISC, uplatnění v personálních počítačích Architektury CISC a RISC, uplatnění v personálních počítačích 1 Cíl přednášky Vysvětlit, jak pracují architektury CISC a RISC, upozornit na rozdíly. Zdůraznit, jak se typické rysy obou typů architektur

Více

IMTEE Přednáška č. 8. interrupt vector table CPU při vzniku přerušení skáče na pevně dané místo v paměti (obvykle začátek CODE seg.

IMTEE Přednáška č. 8. interrupt vector table CPU při vzniku přerušení skáče na pevně dané místo v paměti (obvykle začátek CODE seg. Přerušení Důvod obsluha asynchronních událostí (CPU mnohem rychlejší než pomalé periferie má klávesnice nějaké znaky? ) Zdroje přerušení interrupt source o HW periferie (UART, Disk, časovače apod.) o SW

Více

Funkce, intuitivní chápání složitosti

Funkce, intuitivní chápání složitosti Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Funkce, intuitivní

Více

Úroveň strojového kódu 32-bitový procesor Intel Pentium

Úroveň strojového kódu 32-bitový procesor Intel Pentium Úroveň strojového kódu 32-bitový procesor Intel Pentium Štruktúra 32-bitových procesorov Intel Pentium Základné inštrukcie Vetvenia a cykly Práca so zásobníkom Adresovanie pamäte Pravidlá pre assemblerové

Více

přetížení operátorů (o)

přetížení operátorů (o) přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - deklarace pomocí funkčního

Více

Programování v C++ 1, 1. cvičení

Programování v C++ 1, 1. cvičení Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených

Více

ISU Cvičení 1. Marta Čudová

ISU Cvičení 1. Marta Čudová ISU Cvičení 1 Marta Čudová Supercomputing Technologies Reseaŕch Group Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole icudova@fit.vutbr.cz Kdo

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ107/1500/340410

Více

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá

Více

Operační systémy. Přednáška 8: Správa paměti II

Operační systémy. Přednáška 8: Správa paměti II Operační systémy Přednáška 8: Správa paměti II 1 Jednoduché stránkování Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné

Více

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Sezná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íce

PB071 Programování v jazyce C Jaro 2017

PB071 Programování v jazyce C Jaro 2017 Programování v jazyce C Jaro 2017 Typový systém, Dynamická alokace Typový systém Typový systém - motivace Celé znaménkové číslo se reprezentuje nejčastěji v dvojkovém doplňkovém kódu ival1 = 5 (dvojkový

Více

Struktura a architektura počítačů (BI-SAP) 9

Struktura a architektura počítačů (BI-SAP) 9 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 9 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Systém adresace paměti

Systém adresace paměti Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného

Více

Rekurzivní algoritmy

Rekurzivní algoritmy Rekurzivní algoritmy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA) ZS

Více

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

ZPRO v C Ing. Vít Hanousek. verze 0.3 verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout

Více

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu 1 Podklady předmětu pro akademický rok 2006/2007 Radim Farana Obsah 2 Obsah předmětu, Požadavky kreditového systému, Datové typy jednoduché, složené, Programové struktury, Předávání dat. Obsah předmětu

Více

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Správa paměti II. 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íce

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Programování v jazyce C a C# část I. Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Algoritmizace a programování Téma: Programování Vyučující: Ing. Milan Káža

Více

Dynamické datové struktury IV.

Dynamické datové struktury IV. Dynamické datové struktury IV. Prioritní fronta. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra

Více

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ř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íce

Principy počítačů a operačních systémů

Principy počítačů a operačních systémů Principy počítačů a operačních systémů Instrukce jazyk počítače Zimní semestr 2011/2012 Jazyk počítače Instrukce a instrukční sada instrukce slova jazyka instrukční sada slovník Jaká slova by jazyk měl

Více

Knihovna DataBoxLib TXV 003 56.01 první vydání prosinec 2010 změny vyhrazeny

Knihovna DataBoxLib TXV 003 56.01 první vydání prosinec 2010 změny vyhrazeny Knihovna DataBoxLib TXV 003 56.01 první vydání prosinec 2010 změny vyhrazeny 1 TXV 003 56.01 Historie změn Datum Vydání Popis změn Prosinec 2010 1 První vydání, popis odpovídá DataBoxLib_v14 OBSAH 1 Úvod...3

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Šesté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 6. týden

Více

Je n O(n 2 )? Je n 2 O(n)? Je 3n 5 +2n Θ(n 5 )? Je n 1000 O(2 n )? Je 2 n O(n 2000 )? Cvičení s kartami aneb jak rychle roste exponenciála.

Je n O(n 2 )? Je n 2 O(n)? Je 3n 5 +2n Θ(n 5 )? Je n 1000 O(2 n )? Je 2 n O(n 2000 )? Cvičení s kartami aneb jak rychle roste exponenciála. Příklady: Je n O(n 2 )? Je n 2 O(n)? Je 3n 5 +2n 3 +1000 Θ(n 5 )? Je n 1000 O(2 n )? Je 2 n O(n 2000 )? Cvičení s kartami aneb jak rychle roste exponenciála. Další pojmy složitosti Složitost v nejlepším

Více

KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO ASSEMBLER VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN

KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO ASSEMBLER VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO ASSEMBLER ALEŠ KEPRT VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ REPUBLIKY Olomouc,

Více

09. Memory management. ZOS 2006, L.Pešička

09. Memory management. ZOS 2006, L.Pešička 09. Memory management ZOS 2006, L.Pešička Správa paměti paměťová pyramida absolutní adresa relativní adresa počet bytů od absolutní adresy fyzický prostor adres fyzicky k dispozici výpočetnímu systému

Více

Úvod. Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace POT POT

Úvod. Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace POT POT Úvod Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace K.D. - přednášky 2 Pevná a proměnná délka instrukce (1) Pevná délka instrukce

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Jedenácté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Gabriela Nečasová, inecasova@fit.vutbr.cz

Více

Metody připojování periferií BI-MPP Přednáška 2

Metody 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íce

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Deváté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 27.11.2017,

Více

Implementace LL(1) překladů

Implementace LL(1) překladů Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku

Více

Assembler - 1.část. poslední změna této stránky: Zpět

Assembler - 1.část. poslední změna této stránky: Zpět 1 z 13 19.2.2007 7:49 Assembler - 1.část poslední změna této stránky: 9.2.2007 Zpět Vítejte u první části učebních materiálů k Assembleru. Tyto učební texty vznikly na jaře roku 2000 jako doprovodný materiál

Více

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup

Více