Assembler - 4.část. poslední změna této stránky: Zpět
|
|
- Kristina Sedláčková
- před 8 lety
- Počet zobrazení:
Transkript
1 1 z :51 Assembler - 4.část poslední změna této stránky: Zpět 1. Proměnlivý počet parametrů Funkce s proměnlivým počtem parametrů lze v Assembleru implementovat stejně jako v C++. Abyste to dokázali, je třeba vědět, jak to vlastně v C++ funguje. Pokud to zatím neznáte, podívejte se na jednoduchou funkci v C++, která sečte tři čísla: long add(long a,...) { #define val(n) (&a)[n] return val(0)+val(1)+val(2); } #undef val Funkce je definována pomocí tří teček (tzv. ellipsis, česky výpustka). Konstrukce &a bere a jako první prvek pole. A to je klíčové místo, protože tímto způsobem snadno zpřístupníme další parametry. Parametry jsou prostě "někde v paměti" (na zásobníku) pěkně za sebou a to je celá finta. Když první parametr pojmenujete, máte zpřístupněny i všechny ostatní. V asm můžete pracovat identicky (pomocí pojmenování prvního parametru) nebo složitě pomocí ebp registru pro adresování zásobníku (což už jsme se ale také učili :-). 2. Aritmetické instrukce Zopakujeme si znovu instrukce po skupinách. Nejprve tedy instrukce aritmetické. Podrobné informace k jednotlivým instrukcím naleznete v literatuře (a samozřejmě na hodinách). operace instrukce
2 2 z :51 sčítání add, adc, inc odčítání sub, sbb, dec porovnání cmp, test negace neg násobení mul, imul dělení div, idiv přetypování cbw, cwd, cwde [386], cdq [386] logické a bitové operace and, or, xor, not Aritmetické instrukce pochopitelně mění flagy. Srovnávací instrukce nedávají žádný jiný výsledek, ostatní dávají výsledek v prvním operandu. Pozor! Instrukce inc a dec nemění flag carry. 3. Instrukce pro přenos dat operace instrukce přiřazení mov, movzx [386], movsx [386] záměna xchg práce s porty in, out výpočet efektivní adresy lea, lds, les, lfs [386], lgs [386], lss [386] práce se zásobníkem push, pusha, pushad [386], pushf, pop, popa, popad [386], popf Pozn.: Instrukce pusha a pushad se od sebe navzájem liší tím, že první z nich pracuje s 16bitovými registry, zatímco druhá pracuje s 32bitovými registry. Totéž platí o instrukcích popa a popad. V praxi tedy používáme pouze ty s písmenem d na konci. Pozn.: Instrukce lds, les, lfs, lgs, lss fungují stejně jako lea, navíc však nastaví příslušný segmentový registr. V paměťovém modelu small tedy nemají význam.
3 3 z :51 4. Instrukce posunů a rotací operace instrukce posun (shift) shl=sal, shr, sar, shld, shrd rotace přes carry rcl, rcr rotace rol, ror
4 4 z :51
5 5 z :51
6 6 z :51
7 7 z :51 5. Výkonné instrukce operace skoky instrukce jmp, jcc, jcxz, jecxz [386], loop, loope, loopne
8 8 z :51 entry/exit code enter, leave přerušení int, iret nastavování flagů stflag, clflag, cmc nastavení segmentu seg Instrukce loop Tato instrukce slouží ke snadnému programování cyklů. Píše se na konec cyklu ve formě loop <label>, kde <label> ukazuje na začátek cyklu. Instrukce loop sníží hodnotu registru cx/ecx o jedničku a nemění přitom žádné flagy! Je-li nová hodnota registru nenulová, je proveden skok na uvedený label. To, který registr se použije, se řídí typem code segmentu. Na 16bitových systémech (DOS) se používá cx, na 32bitových systémech (vše mimo DOS) se používá ecx. Instrukce loopz/loope a loopnz/loopne Tyto dvě instrukce jsou rozšířením obyčejného loop. Fungují stejně jako loop a využívají přitom vlastnost, že loop samotný nijak nemění flagy. Instrukce loopz provede totéž co loop, ovšem krom počítadla cx/ecx testuje i příznak z a vyžaduje ZF=1. Řečeno názvem instrukce: "Loop while ecx is nonzero and zero-flag is set." neboli "Opakuj, dokud ecx je nenulové a zero-flag je nastaven." Instrukce loopnz provede totéž co loop, ovšem krom počítadla cx/ecx testuje i příznak z a vyžaduje ZF=0. Řečeno názvem instrukce: "Loop while ecx is nonzero and zero-flag is reset." neboli "Opakuj, dokud ecx je nenulové a zero-flag je nulován." Existují také loope a loopne. Jsou to pouze jiné názvy pro tytéž instrukce. Pozor! Uvedením prefixu nebo jiného tvaru instrukce je možné explicitně změnit použití registru z ecx na cx nebo naopak. Použití je problematické v tom, že se zde jednotlivé překladače assembleru rozcházejí (syntace je různá, proto doporučuji tuto vlastnost nepoužívat). Instrukce enter Entry code procedury, čili vytvoření rámce pro lokální proměnné na zásobníku, je obvykle: push ebp
9 9 z :51 mov ebp,esp sub esp,velikost_lokálních_proměnných Právě tuto sekvenci zajistí instrukce enter velikost_lokálních_proměnných,0. Druhý parametr se používá při vnořených procedurách (v Pascalu). Instrukce leave Exit code procedury provádí instrukce leave (vždy bez operandů). Lze ji nahradit opisem: mov esp,ebp pop ebp Lokální proměnné se takto adresují přes registr ebp, který je implicitně asociován se segmentem ss (podobně jako registr esp). Entry/exit code je nezávislý na paměťovém modelu. Aby se v C++ daly používat pointery, je nutno v modelech small a medium mít ds=ss. (Dokažte!) Ve chráněném režimu (Win32/Linux) to funguje jen díky tomu, že oba segmenty mají společnou bázi a architektura CPU je navržena tak, aby při nepřímém adresování pomocí offesetů byly tyto dva segmenty zaměnitelné. (Vysvětlení žádejte na přednášce.) 6. Řetězcové instrukce operace instrukce nastavení směru cld, std opakování rep, repnz přesun movsb, movsw, movsd načtení lodsb, lodsw, lodsd uložení stosb, stosw, stosd porovnání cmpsb, cmpsw, cmpsd, scasb, scasw, scasd Řetězcové instrukce pracují s dvojicí ds:esi jako source a es:edi jako destination. movs... přesune obsah [ds:esi] na adresu [es:edi]. lods... načte obsah [ds:esi] do al/ax/eax. stos... uloží al/ax/eax na adresu [es:edi]. scas... porovnává [ds:esi] s registrem al/ax/eax. Je tedy vhodná pro vyhledávání znaku v řetězci.
10 10 z :51 cmps... je určena k porovnávání dvou řetězců na adresách [ds:esi] a [es:edi]. Všechny tyto instrukce posouvají esi a edi, pokud s nimi pracují. Při použití cld se oba tyto registry zvyšují, při použití std se oba tyto registry snižují. Změna (zvýšení nebo snížení) hodnoty těchno registrů je o 1, 2 nebo 4 bajty - podle posledního písmena instrukce (b = byte, w = word, d=dword). Pozor! Udržujte v programu stále nulový stav DF (cld). Je to obvyklá konvence, tj. ihned po použití std (což je samo o sobě raritní) ihned vraťte flag zpět pomocí cld. V modelech small a medium je implicitně udržováno ss=ds=es, jinak by tyto řetězcové instrukce nemohly fungovat. Zatímco cílový registr es je pevně daný, zjistil jsem, že zdrojový ds lze nahradit jiným segmentem pomocí instrukce segmenotého prefixu (seges, segfs nebo seggs). Tato vlastnost je nedokumentována, avšak předpokládám, že to nějakým způsobem plyne přímo z architektury procesoru, takže by to mělo fungovat vždy a všude. (Vyzkoušejte.) Opakovací prefixy rep, repe/repz, repne/repnz Opakovací prefixy slouží k opakování řetězcové instrukce. Tyto prefixy jsou použitelné u každé instrukce procesoru, avšak pouze zde mají smysluplný význam. instrukce vhodný prefix lods - movs rep cmps repe, repne scas repe, repne stos rep Pro příklad uveďme funkci na kopírování paměti. V CRT (C runtime library) knihovně je funkce memcpy, která kopíruje blok paměti o zadané délce z jednoho místa na druhé. Ukažme tedy, jak toto napsat v Assembleru. memcpy proc kam:dword, odkud:dword, kolik:dword mov esi,odkud mov edi,kam mov ecx,kolik cld rep movsb ret memcpy endp Uvedená ukázka je nejjednodušší možnou variantou, jak tuto funkci napsat. Lepší si můžete vyzkoušet sami v rámci cvičení.
11 11 z :51 6. Práce s bity Procesory 386 a novější mají instrukční sadu rozšířenou o instrukce pracující s jednotlivými bity. Na rozdíl od původních instrukcí (jako test) tyto nové instrukce číslují bity 0-7, 0-15 resp Poznámka: Instrukce je třeba se naučit nazpaměť, včetně flagů, které ovlivňují. Jinak se v assembleru programovat nedá. Zpět
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í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í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íceAssembler 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í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íceAssembler 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í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íceAssembler - 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í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í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í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í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í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í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í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í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í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íceAssembler - 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í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í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 - 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í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í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ícePROGRAMOVÁ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í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íceEasy 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Ú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í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í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í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í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í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íceAssembler - 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íce1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5
Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5
VíceSemestrální práce z předmětu ÚPA MIPS
Semestrální práce z předmětu ÚPA MIPS Jméno a příjmení: Martin Sloup Osobní číslo: A04372 Datum odevzdání: 21. prosince 2006 E-mail: msloup@students.zcu.cz Zadání Program převede signed integer na jeho
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í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íceOperátory. Základy programování 1 Tomáš Kühr
Operátory Základy programování 1 Tomáš Kühr Operátory a jejich vlastnosti Základní konstrukce (skoro) každého jazyka Z daných operandů vytvoří výsledek, který je možné dále využívat Arita udává počet operandů
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í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íceKATEDRA 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í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íceProcesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru
Počítačové systémy Procesor Miroslav Flídr Počítačové systémy LS 2006-1/17- Západočeská univerzita v Plzni Víceúrovňová organizace počítače Digital logic level Microarchitecture level Processor Instruction
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í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í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íceInovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09
Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Operátory Autor:
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í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í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í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íce22. TVORBA UŽIVATELSKÝCH INSTRUKCÍ A MAKER
Tvorba uživatelských instrukcí a maker 22. TVORBA UŽIVATELSKÝCH INSTRUKCÍ A MAKER Od verze překladače PLC 6.041 je umožněno si definovat a používat vlastní pro překlad PLC programu. Rozvoj uživatelských
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í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í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íceParalelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =
Více6. Příkazy a řídící struktury v Javě
6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return
VíceOperátory, výrazy. Tomáš Pitner, upravil Marek Šabo
Operátory, výrazy Tomáš Pitner, upravil Marek Šabo Operátor "Znaménko operace", pokyn pro vykonání operace při vyhodnocení výrazu. V Javě mají operátory napevno daný význam, nelze je přetěžovat jako v
VíceCZ.1.07/1.5.00/
Celá čísla Celočíselný typ má označení INTEGER. Kromě tohoto základního jsou k dispozici ještě další celočíselné typy, které uvádí následující tabulka. Každý typ umožňuje definovat určitý rozsah celých
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íceFunkce pokročilé možnosti. Úvod do programování 2 Tomáš Kühr
Funkce pokročilé možnosti Úvod do programování 2 Tomáš Kühr Funkce co už víme u Nebo alespoň máme vědět... J u Co je to funkce? u Co jsou to parametry funkce? u Co je to deklarace a definice funkce? K
VícePetr 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íceProgramá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í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íceArchitektura 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í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íceArchitektura počítače
Architektura počítače Výpočetní systém HIERARCHICKÁ STRUKTURA Úroveň aplikačních programů Úroveň obecných funkčních programů Úroveň vyšších programovacích jazyků a prostředí Úroveň základních programovacích
VíceProgramování. řídících systémů v reálném čase. Střední odborná škola a Střední odborné učiliště - - Centrum Odborné přípravy Sezimovo Ústí
Střední odborná škola a Střední odborné učiliště - - Centrum Odborné přípravy Sezimovo Ústí Studijní text pro 3. a 4. ročníky technických oborů Programování řídících systémů v reálném čase Verze: 1.11
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íceZákladní datové struktury
Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013
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í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íce35POS 2006. Počítačové systémy. 8 Mnohaúrovňová organizace počítače 1
35POS 2006 Počítačové systémy 8 Mnohaúrovňová organizace počítače 1 1 Mnohaúrovňová organizace počítače Strojový jazyk počítače - množ. jedn. instr. - do ní převést prog. pro výkon -úroveň L1 - abeceda
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í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í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íceJan Nekvapil ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická
Jan Nekvapil jan.nekvapil@tiscali.cz ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Motivace MMX, EMMX, MMX+ 3DNow!, 3DNow!+ SSE SSE2 SSE3 SSSE3 SSE4.2 Závěr 2 Efektivní práce s vektory
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 - deklarace pomocí funkčního
VícePoslední nenulová číslice faktoriálu
Poslední nenulová číslice faktoriálu Kateřina Bambušková BAM015, I206 Abstrakt V tomto článku je popsán a vyřešen problém s určením poslední nenulové číslice faktoriálu přirozeného čísla N. Celý princip
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íceInstrukce procesoru pentium.
Instrukce procesoru pentium. Soubor hlavních instrukcí. Pavlů Zdeněk 01.06.2016 Tento dokument jsem vyrobil zhruba před 12 roky. Neobsahuje veškeré instrukce. Při výrobě jsem čerpal z materiálů Intel Corporation.
VíceÚvod do programování. Lekce 1
Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -
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í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íceOperátory. Základy programování 1 Martin Kauer (Tomáš Kühr)
Operátory Základy programování 1 Martin Kauer (Tomáš Kühr) Organizační poznámky Formátujte kód přehledně! Pomůžete sobě i mně. Spusťte si vaše programy a zkuste různé vstupy! Pokud program nedává správné
VíceVstupně - výstupní moduly
Vstupně - výstupní moduly Přídavná zařízení sloužící ke vstupu a výstupu dat bo k uchovávání a archivaci dat Nejsou připojována ke sběrnici přímo, ale prostřednictvím vstupně-výstupních modulů ( ů ). Hlavní
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íceÚ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í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íceČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Vzorový příklad pro práci v prostředí MPLAB Zadání: Vytvořte program, který v intervalu 200ms točí doleva obsah registru reg, a který při stisku tlačítka RB0 nastaví bit 0 v registru reg na hodnotu 1.
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íceStruktura 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Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
VíceVstupně výstupní moduly. 13.přednáška
Vstupně výstupní moduly 13.přednáška Vstupně-výstupn výstupní modul (I/O modul) Přídavná zařízení sloužící ke vstupu a výstupu dat nebo k uchovávání a archivaci dat Nejsou připojována ke sběrnici přímo,
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íceVirtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.
Virtuální počítač Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor Virtuální počítač Překladač Překladač : Zdrojový jazyk Cílový jazyk Analytická část:
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í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íceObsah 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íceSemestrální práce z předmětu Speciální číslicové systémy X31SCS
Semestrální práce z předmětu Speciální číslicové systémy X31SCS Katedra obvodů DSP16411 ZPRACOVAL: Roman Holubec Školní rok: 2006/2007 Úvod DSP16411 patří do rodiny DSP16411 rozšiřuje DSP16410 o vyšší
Více