PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10
|
|
- Marek Slavík
- před 8 lety
- Počet zobrazení:
Transkript
1 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 2013 Tento studijní materiál vznikl za finanční podpory Evropského sociálního fondu (ESF) a rozpočtu České republiky v rámci řešení projektu: MODERNIZACE VÝUKOVÝCH MATERIÁLŮ A DIDAKTICKÝCH METOD
2 2 Cvičení 10 Využití zásobníku pro předání parametrů podprogramům a lokální proměnné STRUČNÝ OBSAH CVIČENÍ: Ukázkový program s podprogramem na vyplnění pole Vysvětlení ukázkového programu Úkoly k procvičení VSTUPNÍ ZNALOSTI: Toto cvičení předpokládá znalosti o využití zásobníku získané na přednáškách a znalosti programování mikropočítače HCS08 z předchozích cvičení. CÍL: Na tomto cvičení si ukážeme, jak lze využít zásobník pro předávání parametrů do podprogramů a pro vytvoření lokálních proměnných v podprogramech. Tyto znalosti nám umožní efektivnější tvorbu programů a také lepší porozumění kódu generovaného překladačem jazyka C. Cvičení se vztahuje k těmto otázkám Funkce a ovládání zásobníkové paměti, instrukce pro práci se zásobníkem u mikropočítače HC08
3 3 Řešené příklady Příklad 1 Podprogram pro vyplnění pole konstantou Úkol: Napište podprogram, který vyplní předané pole libovolným číslem v rozsahu 0 až 255. Vstupními parametry podprogramu budou v registrech H:X adresa začátku pole, v registru A počet prvků pole a na zásobníku číslo, kterým se má pole vyplnit jako jednobajtový parametr. Napište také program, který tento podprogram využije a naplní pole o 5-ti prvcích konstantou 3. Řešení Podprogram bude pracovat s polem pomocí indexového adresování. Tento princip byl vysvětlen v kapitole 2, na příkladu nulování pole. Byla zde zmíněna i varianta předání adresy do podprogramu v registru H:X. Náš podprogram bude pro počitadlo průchodů cyklem (počtu již zpracovaných prvků) a pro uložení předaného počtu prvků pole používat lokální proměnné na zásobníku. Bude také přistupovat k parametru předanému na zásobníku, což je konstanta, kterou se má pole vyplnit. Hlavní program pouze připraví parametry na zásobník a do registrů a zavolá podprogram. Zdrojový kód podprogramu a hlavního programu je na následujících výpisech. Vysvětlení programu Podívejme se nejprve na hlavní program. Instrukcemi LDHX a TXS se nastaví ukazatel zásobníku na adresu $98. Vlastně tím umísťujeme zásobník na námi požqadované místo. Toto obvykle provádí CodeWarrior při vytváření nového projektu a nastavuje zásobník na pozici definovanou nastavením projektu. Většinou konkrétní adresa umístění zásobníku pro nás není podstatná a můžeme jej ponechat na výchozí hodnotě určené vývojovým prostředím. V tomto případě jsme ale zásobník přemístili na adresu $98 a to z čistě studijních důvodů takto bude obsah zásobníku při krokování programu snadno vidět spolu s proměnnými v okně Memory simulátoru, aniž bychom v tomto okně museli skrolovat. Dále už pokračuje kód programu, který řeší zadání. Hlavní program má za úkol připravit vstupní parametry pro podrpogram Podp a pak jej zavolat. Nejprve na zásobník vkládáme
4 4 parametr určující, jakým číslem má podprogram vylnit pole. Zde to má být číslo 3, proto se na zásobník ukládá číslo 3. Provede se to přes registr A, tj. nejprve nahrajeme číslo 3 jako přímý operand do registru A a potom registr A vložíme na zásobník instrukcí PSHA. Dalším parametrem podprogramu je adresa pole. Na výpisu to není uvedeno, ale jistě dokážete sami definovat pole s názvem Pole, obsahující pět jednobajtových prvků. Adresu tohoto pole pak nahrajeme do registru H:X (LDHX #Pole). Do registru A poté nahrajeme počet prvků pole, což je 5 (LDA #5). Tím máme všechny vstupní parametry pro podprogram připraveny a můžeme jej zavolat instrukcí JSR Podp. Po volání podprogramu následuje instrukce PULA, která ze zásobníku odstraňuje parametr, který jsme tam před chvíli vložili (číslo 3). Toto je nutné aby se zásobník vrátil do původního stavu, tak jak byl předtím, než jsme začali připravovat parametry pro volání podprogramu Podp.* mainloop: ; Insert your code here NOP LDHX #$98 TXS ; Aby byl videt zasobnik v simulatoru LDA #3 ; param. Na zasobniku = vyplnim trojkami PSHA LDHX #Pole ; adresa pole LDA #5 ; pocet prvku pole JSR Podp ; volam podprogram s parametry 5 a 3: Podp(3,5); PULA ; odstraneni parametru ze zasobniku Obr. 1 Kód hlavní programu dle zadání Nyní, když už máme napsán kód, který podprogram Podp využívá, podívejme se dovnitř samotného podprogramu, viz následující výpis. Podprogram využívá 2 lokální proměnné, jednu pro počitadlo cyklu a druhou pro počet prvků pole. Vzpomeňte si, že podprogram dostává počet prvků pole v registru A. Tento údaj potřebuje po celou dobu opakování cyklu, aby s ním mohl porovnávat počet již zpracovaných prvků pole a věděl, kdy cyklus ukončit. Nemůže jej ovšem ponechat v registru A, protože ten bude využíván uvnitř cyklu. Elegantním řešením je tedy uložení počtu prvků pole do lokální proměnné. Vytvoření lokálních proměnných (jejich alokace) je vlastně operace rezervování (zabrání) místa na zásobníku. To lze provést např. instrukcí PSHA (uložení A na zásobník). Tím vložíme na zásobník nějakou hodnotu, která nemusí být podstatná pokud nechceme lokální proměnno zároveň inicializovat. Hlavně ale způsobíme posun ukazatele zásobníku, tj. na zásobníku vznikne prostor 1 bajtu, alokuje se lokální proměnná.
5 5 Náš podprogram provádí alokaci právě tímto způsobem, instrukcí PSHA. Navíc chytře využíváme faktu, že registr A obsahuje při vstupu do podprogramu počet prvků pole (vstupní argument z volajícího programu). A počet prvků pole chceme uložit do jedné z lokálních proměnných podprogramu. První instrukcí PSHA se tak nejen rezervuje místo pro lokální proměnnou uchovávající v podprogramu počet prvků pole, ale zároveň se tento počet do ní i uloží. Druhá lokální proměnná je počitadlo průchodů cyklem. Počitadlo musí mít na začátku nulovou hodnotu, proto před alokací a inicializací této proměnné nulujeme registr A instrukcí CLRA a potom ukládáme tuto nulu na zásobník. ; Podprogram pro naplneni pole konstantou ; H:X - adresa pole; A - pocet prvku pole; Zasobnik: konstanta kterou vyplnit Podp: ; alokace lokalnich promennych PSHA ; lokalni promenna 1 = pocet prvku pole CLRA ; nuluj budouci pocitadlo PSHA ; lokalni promenna 2 = pocitadlo cyklu opak: LDA 5, SP ; parametr podprogramu = konstanta kterou vyplnit pole STA,X ; se ulozi do aktualniho prvku pole AIX #1 INC 1,SP ; inkrementuj pocitadlo LDA 1,SP ; pocitadlo do A CMP 2,SP ; porovnej pocitadlo s poctem prvku pole BLO opak PULA ; uvolneni zasobniku PULA RTS Obr. 2 Kód podprogramu pro vyplnění pole konstantou dle zadání Kód za návěštím opak se opakuje tolikrát, kolik je prvků pole. To je zajištěno pomocí podmíněného skoku BLO (skoč jestliže je menší), který se provede po porovnání počitadla a celkového počtu prvků pole. Jak počitadlo tak i počet prvků jsou lokální proměnné a jak je vidět na výpisu, nejprve nahrajeme počitadlo do registru A (LDA 1,SP) a potom porovnáme registr A s počtem prvků (CMP 2,SP). Jestliže je počitadlo menší než počet prvků, provede se skok na návěští opak a zpracuje se pak další prvek pole. Jak se nastavuje zadané číslo do jednotlivých prvků pole uvnitř cyklu? Do registru A se nahraje konstanta, kterou se má pole vyplnit (LDA 5,SP) a následující instrukcí se z registru A uloží do aktuálního prvku pole (STA,X) viz indexové adresování při práci s polem. Jak jsme věděli, že u instrukce LDA 5,SP má být před SP právě číslo 5? Do každého prvku pole máme uložit konstantu předanou do našeho podprogramu jako parametr z volajícího programu. Konstanta se předává na zásobníku (viz zadání úkolu). Vzhledem k tomu, že na zásobník je nejprve uložena právě tato konstanta (parametr našeho
6 6 podprogramu), pak návratová adresa (uložená automaticky při volání podprogramu) a pak ještě 2 lokální proměnné, nachází se konstanta na offsetu 5 od ukazatele zásobníku SP. Pro lepší představu o umístění lokálních proměnných a vstupního parametru na zásobníku se podívejte na následující obrázek. Obr. 3 Stav zásobníku v podprogramu Podp po alokaci lokálních proměnných Pomocí takového obrázku snadno zjistíme, jak přistupovat ke kterékoliv proměnné nebo argumentu na zásobníku (jaké číslo použít před SP v instrukcích jako LDA??,SP nebo STA??,SP apod..). Jestliže např. potřebujeme nahrát do registru A počitadlo cyklů (lokální proměnnou), podle obrázku vidíme, že tato proměnná je na adrese SP + 1 a tedy v instrukci LDA bude: LDA 1,SP. Při psaní vlastních programů si můžete podobný obrázek nakreslit. I u poměrně jednoduchého kódu se vám čas strávený jeho kreslením bohatě vrátí při psaní programu i hledání chyb. Na konci podprogramu se pomocí instrukcí PULA odstraní lokální proměnné ze zásobníku. Instrukcí RTS se pak vracíme do volajícího programu. Vraťte se i vy k výpisu kódu hlavního programu výše a všimněte si, že za instrukcí JSR Podp, která volá náš podprogram je také instrukce PULA. Tato uvolňuje ze zásobníku argument, který hlavní program předával podprogramu konstantu, kterou má podprogram vyplnit pole. Poznámka: Principiálně může vstupní parametry ze zásobníku odstranit buď volající (tj. hlavní program), tak jak to děláme v našem příkladě, nebo může odstranění parametrů provést samotný podprogram. Tato dohoda o tom, kdo odstraní vstupní parametry ze zásobníku, spolu s
7 7 dalšími dohodami se označuje jako volací konvence (rozumějte dohoda pro volání podprogramů). Testování programu Tento program je zbytečné nahrávat do mikropočítače, pro jeho otestování nám bohatě postačí simulátor. Pokud jste při vytváření projektu v CodeWarrior zvolili typ připojení Monitor, změňte je nyní na Simulation výběrem v rozbalovacím seznamu v levé části okna CodeWarrior. Po překladu a odstranění případných chyb spusťte program v simulátoru obvyklým způsobem. Sledujte v okně Memory obsah paměti vyhrazené pro zásobník. Adresu aktuálního vrcholu zásobníku vždy najdete v registru SP v okně Registers. Po spuštění programu by to mělo být $98. Pak po vložení parametru (číslo 3) by se měl obsah SP snížit na $97 a na adrese $98 v okně Memory byste měli vidět vloženo číslo 3. Použijte příkaz Step Into pro krokování dovnitř podprogramu. Po provedení instrukce JSR uvidíte, že SP bude obsahovat hodnotu $95 (vložili se 2 bajty návratové adresy). Tyto dvě hodnoty vložené v zásobníku nejsou pro nás teď podstatné, bude se jednat o 16-ti bitovou adresu instrukce následující za instrukcí JSR Podp. Po alokaci lokálních proměnných by měla být v SP hodnota $93 a měli byste vidět, že bajt paměti nejblíže SP (adresa $94) bude na začátku podprogramu vynulován (jedná se o počitadlo cyklu). Bajt na adrese $95 bude obsahovat číslo 5, což je počet prvků pole (předaný do podprogramu v registru A, ale podprogram si jej uložil do lokální proměnné na zásobníku). Krokujte cyklus plnění pole a sledujte, jak se v počitadle cyklů na zásobníku inkrementuje počet průchodů cyklem. Příklady k procvičení 1. Vytvořte podprogram, který spočítá lichá čísla v předaném poli. Adresa pole se předá na zásobníku, počet prvků pole se předá v registru A. Podprogram vrátí v registru A zjištěný počet lichých čísel. Napište program, který pomocí zadaného podprogramu určí počet lichých čísel v poli data s pěti prvky. Pole můžete inicializovat na libovolné hodnoty.
8 8 2. Vytvořte knihovnu podprogramů pro základní matematické operace: sčítání, odčítání, násobení a dělení. Napište pak program, který bude knihovnu využívat pro výpočet výrazu: vysledek = ((c1 + c2) * c3) / (c3-c1). Podprogramy budou mít následující názvy: soucet, rozdil, nasobeni, deleni, modulo. Vstupní hodnoty budou mít vždy velikost 8 bitů a budou se předávat na zásobníku ve vámi zvoleném pořadí. Výsledek (návratová hodnota) se bude u všech podprogramů předávat v registru A. Knihovna nesmí používat žádné globální proměnné. V případě potřeby použijte lokální proměnné na zásobníku. Podprogramy nesmí změnit hodnoty registrů s výjimkou A, který je použit pro vrácení výsledku. Knihovnu umístěte do samostatného souboru s názvem math.asm a vytvořte k ní hlavičkový soubor math.inc. Doplňující zdroje [1] Freescale: Firemní dokumentace pro mikropočítače HCS08, dostupné online: EDD5
PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 3
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 3 Podprogramy a práce se zásobníkem Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál vznikl
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 2
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 2 Větvení programu, pole a cyklus v jazyce symbolických adres Jan Dolinay Petr Dostálek Zlín 2013 Tento
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 8
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 8 Využití sériové komunikace Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál vznikl za finanční
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 7
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 7 Využití knihoven podprogramů, displej Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál vznikl
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 6
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 6 Práce s analogově digitálním převodníkem Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 11
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 11 Programování mikropočítačů v jazyce C Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál vznikl
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 5
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 5 Práce s přerušením, zpracování stisku tlačítka Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 1
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 1 První program v jazyce symbolických adres Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál
Více8. 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í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íceAdresní mody procesoru
Adresní mody procesoru K.D. - přednášky 1 Obecně o adresování Různé typy procesorů mohou mít v instrukci 1, 2 nebo více adres. Operandy mohou ležet v registrech nebo v paměti. Adresní mechanismus procesoru
VíceVážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího
VíceLED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: 4.10.2011 8:01:48
LED_007.c Strana: 1/5 Nyní již umíme používat příkazy k větvení programu (podmínky) "if" a "switch". Umíme také rozložit program na jednoduché funkce a používat cyklus "for". Co se týče cyklů, zbývá nám
VíceOperač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í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íce1. Programování PLC. Programovatelné automaty II - 1 -
Programovatelné automaty II - 1-1. Programování PLC Centrální jednotka Poskytuje programovatelnému automatu inteligenci. Realizuje soubor instrukcí a systémových služeb, zajišťuje i základní komunikační
VíceVysoká škola chemicko-technologická v Praze Fakulta chemicko-inženýrská Ústav počítačové a řídicí techniky. Aplikace mikroprocesorů.
Vysoká škola chemicko-technologická v Praze Fakulta chemicko-inženýrská Ústav počítačové a řídicí techniky Aplikace mikroprocesorů Deska Evb IO Návod k použití Lukáš Lahoda 2010 Obsah 1 DESKA EVB IO...
VíceV 70. letech výzkumy četnosti výskytu instrukcí ukázaly, že programátoři a
1 Počítače CISC a RISC V dnešní době se ustálilo dělení počítačů do dvou základních kategorií podle typu použitého procesoru: CISC - počítač se složitým souborem instrukcí (Complex Instruction Set Computer)
VíceKolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín
Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit
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í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íceKlíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.
Příkazy cyklu v C# Kapitola vysvětluje použití tří typů cyklů for, while a -while a plňuje jejich použití řau příkladů programů v jazyku C#. V jazyku C by šlo pouze k záměně funkcí pro vstup a výstup.
Vícefor (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í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í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í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í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ícePokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++
Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Třídy v C++ Třídy jsou uživatelsky definované typy podobné strukturám v C, kromě datových položek (proměnných) však mohou obsahovat i funkce
VícePaměti a jejich organizace
Kapitola 5 Paměti a jejich organizace 5.1 Vnitřní a vnější paměti, vlastnosti jednotlivých typů Vnější paměti Jsou umístěny mimo základní jednotku. Lze je zařadit mezi periferní zařízení. Zápis a čtení
VíceŠifrování/Dešifrování s použitím hesla
Fakulta elektrotechnická Katedra teoretické elektrotechniky Dokumentace k semestrální práci Šifrování/Dešifrování s použitím hesla 2012/13 Petr Zemek Vyučující: Ing. Petr Kropík, Ph.D Předmět: Základy
VíceTeoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
Vícepř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 - operátor je speciální
VíceJazyk C# a platforma.net
Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 1. část BI-DNP Evropský sociální fond
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íceArchitektury 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íceDalší 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íceSemestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016
Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016 Obsah 1 Zadání 1 2 Analýza úlohy 2 2.1 Uložení dat ze vstupního souboru................ 2 2.2 Graf
VíceObsah. Začínáme pracovat v InventorCAMu - frézování. 1995-2009 SolidCAM WWW.INVENTORCAM.CZ. All Rights Reserved.
Obsah Začínáme pracovat v InventorCAMu - frézování WWW.INVENTORCAM.CZ 1995-2009 SolidCAM All Rights Reserved. 1 2 2 Obsah Obsah 1. Přehled modulů InvnetorCAMu... 11 1.1 2.5D Frézování... 12 1.2 Obrábění
VícePokroč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íceNávod na práci s přípravkem a programy uscope a FLIP na cvičeních
Návod na práci s přípravkem a programy uscope a FLIP na cvičeních Ing. Tomáš Martinec Ph.D. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Tento materiál vznikl
VíceSprá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í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íceOperač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íceOvladač Fiery Driver pro systém Mac OS
2016 Electronics For Imaging, Inc. Informace obsažené v této publikaci jsou zahrnuty v Právní oznámení pro tento produkt. 30. května 2016 Obsah Ovladač Fiery Driver pro systém Mac OS Obsah 3...5 Fiery
VíceModul řízení otáček stejnosměrného motorku
Modul řízení otáček stejnosměrného motorku Výukový modul pro předmět mikropočítače Popis modulu úvod Jedná se o rozšiřující modul pro kit GB60. Modul obsahuje stejnosměrný motorek osazený zařízením pro
Více.include "m32def.inc" // Konstanty.equ N = 5 // Počet prvků v poli.equ PRVNI = 3 // První číslo v poli
Příklad č. 1 Vytvořte v paměti RAM pole, umístěte jen v paměti SRAM od začátku, jeho velikost bude dána konstantou N. Pole naplňte, přičemž hodnota prvního prvku bude dána konstantou PRVNI, a další prvky
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íceZá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íceKatedra informatiky a výpočetní techniky. 10. prosince Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.
Katedra informatiky a výpočetní techniky České vysoké učení technické, fakulta elektrotechnická Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc. 10. prosince 2007 Pamět ové banky S výhodou používáme
VíceHypEd4 Uživatelská příručka 2004 HYPEL
HypEd4 Uživatelská příručka I HypEd4 - Uživatelská příručka Obsah Kapitola I Vítejte 6 1 Použití nápovědy... 6 2 Co je nového... v programu HypEd 4 6 3 Získání další odborné... pomoci 6 Kapitola II Instalace,
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ícePOLYMERTEST Tř.T.Bati 299, 764 22 Zlín. ZÁKRUTOMĚR Dle ČSN EN ISO 2061
TECHNICKÉ PODMÍNKY A NÁVOD K OBSLUZE ZÁKRUTOMĚR Dle ČSN EN ISO 2061 č.v. 1302 1. Účel použití Definice zákrutu Zákrut je počet otáček, které vloží zakrucovací stroj do rovnoběžných vláken na délku 1m.
VíceMAPOVÉ OKNO GSWEB. Nápověda. Pohyb v mapovém okně Výběr v mapovém okně. Panel Ovládání Panel Vrstvy. Tisk Přehledová mapa Redlining Přihlásit jako
GSWEB Nápověda 1. Mapové okno Pohyb v mapovém okně Výběr v mapovém okně 2. Ovládací panel a panel vrstev Panel Ovládání Panel Vrstvy 3. GSWeb - roletové menu Tisk Přehledová mapa Redlining Přihlásit jako
Vícesetup() { I = 0; } loop() { I = I + 1; }
PŘERUŠENÍ Procesor pracuje tak, že načítá z paměti jednotlivé instrukce a ty následně zpracovává. Instrukce se zpracovávají v pořadí v jakém jsou uloženy v paměti. Vezměme jednoduchý program, který v nekonečném
VíceOperační systémy a programování
Vysoká škola báňská Technická univerzita Ostrava Operační systémy a programování učební text David Fojtík Ostrava 2007 Recenze: Jiří Kulhánek Miroslav Liška Název: Operační systémy a programování Autor:
VíceObsah. Začínáme Viditelné součásti programu Simulace. WOP Menu CNC řízení. CNC Programy. Exec. Grafické okno. Strojní panel. 3D Model.
F2000 WOP - Page 1 of 51 Začínáme Viditelné součásti programu Simulace Strojní panel 3D Model WOP CNC řízení CNC Programy Přípravné funkce Pomocné funkce Pevný formát CNC programu Volný formát Parametrické
Více09. 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ícePROCESOR. Typy procesorů
PROCESOR Procesor je ústřední výkonnou jednotkou počítače, která čte z paměti instrukce a na jejich základě vykonává program. Primárním úkolem procesoru je řídit činnost ostatních částí počítače včetně
Víceint => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:
13.4.2010 Typová konverze - změna jednoho datového typu na jiný - známe dva základní implicitní ("sama od sebe") a explicitní (výslovně vyžádána programátorem) - C je málo přísné na typové kontroly = dokáže
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í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íceSimulace v Quartus II 13.0sp1
Simulace v Quartus II 13.0sp1 Richard Šusta, Katedra řídicí techniky ČVUT-FEL v Praze V Quartus II 13.0sp1 postup simulace mnohem jednodušší než v předchozích verzích. Předpokládejme, že máte vytvořený
VíceUniversita 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íceTechnické vývojové prostředky
Technické vývojové prostředky Budeme-li realizovat mikroový systém včetně programového vybave-ní, budeme v závěrečné fázi stát před problémem oživení jak obvodového zapojení (hadrware), tak jeho programového
VíceÚLOHA 6. Úloha 6: Stěžejní body tohoto příkladu:
Úloha 6: Stěžejní body tohoto příkladu: - Definování tabule plechu - Manuální nesting - vkládání - Expert-parametry pro nastavení automatického zpracování - Provedení automatického Expert zpracování -
VíceNávod na použití programu 8051 IDE
Návod na použití programu 8051 IDE Ing. Tomáš Martinec Ph.D. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Tento materiál vznikl v rámci projektu ESF CZ.1.07/2.2.00/07.0247,
Vícedovolují dělení velkých úloh na menší = dekompozice
Podprogramy dovolují dělení velkých úloh na menší = dekompozice Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
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 K.D. - přednášky 2 Pevná a proměnná délka instrukce (1) Pevná délka instrukce
VícePointery 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íceZAČÍNÁME. špičkové technologie. SolidCAM + SolidWorks ÚSPORA ČASU. nová revoluční technologie frézování. Plně integrované v ýrobní ře šení
SolidCAM + SolidWorks Plně integrované v ýrobní ře šení špičkové technologie nová revoluční technologie frézování AŽ ÚSPORA ČASU nová revoluční technologie frézování ZAČÍNÁME The Leaders in Integrated
VíceŘEŠENÉ PRAKTICKÉ PŘÍKLADY V CAM SYSTÉMU MASTERCAM
Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní ŘEŠENÉ PRAKTICKÉ PŘÍKLADY V CAM SYSTÉMU MASTERCAM Učební text předmětu CAD/CAM systémy v obrábění a CAD/CAM systémy v obrábění II Marek
VíceSystémová volání Mgr. Josef Horálek
Systémová volání Mgr. Josef Horálek Systémová volání = Systémová volání = volání jádra = základní komunikace aplikačních programů s jádrem = Tvůrce programu obvykle oddělen vrstvou standardní knihovny
VícePř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íceIUJCE 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í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íceUživatelská příručka pro Příkazce / Správce zdrojů financování. Projekt DMS modul Faktury
S Y C O N I X, a. s. Freyova 12 Telefon: +420 2 83 10 90 10 190 00 Praha 9 Fax: +420 2 83 10 90 11 Česká republika w w w. s y c o n i x. c z pro Příkazce / Správce zdrojů financování Projekt DMS modul
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í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íceJazyk 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íceImplementace seznamů do prostředí DELPHI pomocí lineárního seznamu
Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu Ukazatel a dynamické datové struktury v prostředí DELPHI Důležitým termínem a konstrukčním programovým prvkem je typ UKAZATEL. Je to vlastně
VíceZá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íceRámcový manuál pro práci s programem TopoL pro Windows
Rámcový manuál pro práci s programem TopoL pro Windows Příkazy v nabídce Předmět Volba rastru rychlá klávesa F4 Příkaz otevře vybraný rastr; tj. zobrazí ho v předmětu zájmu. Po vyvolání příkazu se objeví
VíceImplementace numerických metod v jazyce C a Python
Fakulta elektrotechnická Katedra matematiky Dokumentace k semestrální práci Implementace numerických metod v jazyce C a Python 2013/14 Michal Horáček a Petr Zemek Vyučující: Mgr. Zbyněk Vastl Předmět:
VíceStřední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT
Škola Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Název sady Téma Anotace Autor Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram CZ.1.07/1.5.00/34.0556
VícePROGRAMOVÁNÍ V C++ CVIČENÍ. Michal Brabec
PROGRAMOVÁNÍ V C++ CVIČENÍ Michal Brabec ARCHITECTURE Input 2 / 15 TASK Vytvořte základní data pro filesystem (zatím v main) Jednu autorizační autoritu Jeden registr souborů Cyklus který zpracovává vstup
VíceSysté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íceProgramování. Debugging a testování. Martin Urza
Programování Debugging a testování Martin Urza Co je debugging? V počítačích nulté generace byly důvodem některých chyb zkraty, které způsoboval mimo jiné hmyz, jenž do těchto strojů zalézal. Odstraňování
VíceProcesor. Procesor FPU ALU. Řadič mikrokód
Procesor Procesor Integrovaný obvod zajišťující funkce CPU Tvoří srdce a mozek celého počítače a do značné míry ovlivňuje výkon celého počítače (čím rychlejší procesor, tím rychlejší počítač) Provádí jednotlivé
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íceChronis RTS / RTS L Programovatelné spínací hodiny s bezdrátovým přenosem povelů
Abyste mohli optimálně využít všech výhod programovatelných spínacích hodin s bezdrátovým Chronis RTS/RTS L, přečtěte si pozorně následující návod k obsluze a provozu. Chronis RTS / RTS L jsou programovatelné
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íceZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14
ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 18 0:40 Algoritmus Algoritmem by se dal nazvat
VíceZpracování deklarací a přidělování paměti
Zpracování deklarací a přidělování paměti Účel deklarací -pojmenování objektů -umístění objektů v paměti Tabulka symbolů -uchovává informace o objektech -umožňuje kontextové kontroly -umožňuje operace
VíceStruktura 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í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ícePřidělování paměti I Mgr. Josef Horálek
Přidělování paměti I Mgr. Josef Horálek = Paměť = operační paměť je paměť, kterou přímo využívají procesory při zpracováni instrukci a dat; Paměť Funkce modulu přidělování paměti = Sledování stavu každého
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íceLaboratorní zdroj - 6. část
Laboratorní zdroj - 6. část Publikované: 20.05.2016, Kategória: Silové časti www.svetelektro.com V tomto článku popíšu způsob, jak dojít k rovnicím (regresní funkce), které budou přepočítávat milivolty
VíceRegistry 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íceOperační systémy 2. Přednáška číslo 2. Přidělování paměti
Operační systémy 2 Přednáška číslo 2 Přidělování paměti Základní pojmy Paměť = operační paměť paměť, kterou přímo využívají procesory při zpracování instrukcí a dat Funkce modulu přidělování paměti: Sledování
Více