ISU Cvičení 3. Marta Čudová
|
|
- Julie Krausová
- před 6 lety
- Počet zobrazení:
Transkript
1 ISU Cvičení 3 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 Program v Assembleru 3 sekce section.data Deklarace a definice inicializovaných dat a konstant nemění se za běhu. ~ konstantní proměnné v C section.bss Deklarace proměnných (definice v programu), nemění se za běhu. Část paměti vyplněná nulami na začátku. section.text Návěští Kód, fixní velikost v paměti Pojmenování míst v paměti počítače Definice bodu v programu, na který lze skočit Lokální návěští je uvozeno znakem tečka a je platné jen mezi dvěma globálními návěštími section.data msg db 'Hello, world!', 0 section.bss var resb 10 section.text main: mov esi, msg call WriteString ret Marta Čudová - ISU, 3. cvičení 2
3 Registr Bity 0 Pracujeme v 32-bitovém režimu. Každý ukazatel má 32 bitů. Marta Čudová - ISU, 3. cvičení 3
4 Univerzální registry Datové AX střádač, aritmetické operace, input/output BX bázový registr, adresování CX čítač, čítač v cyklech, posuvech a rotacích DX - input/output, aritmetické operace mul, div Segmentové CS (Code Segment) SS (Stack Segment) DS (Data Segment) ES (Extra Segment) Indexové a ukazatelé BP (Base Pointer) bázový registr SP (Stack Pointer) ukazatel vrcholu zásobníku DI (Destination Index) zdroj. index pro operaci s řetězci SI (Source Index) cíl. index pro operaci s řetězci Adresování paměti (data). Jejich obsah neměníme. Spoléháme, že jsou implicitně nastavené správně. Ukládají segmentovou část adresy. Pro práci se zásobníkem (lokální proměnné, parametry). Adresování paměti (data). Marta Čudová - ISU, 3. cvičení 4
5 (E)FLAGS Registr obsahuje 32 bitů (indikátorů), které procesor nastavuje podle výsledku právě provedené operace, a umožňuje tak větvit program. K registru nelze přistoupit jako k celku, ale lze přistoupit k jeho jednotlivým bitům (flagům). Některé bity jsou rezervované a nelze je měnit. Marta Čudová - ISU, 3. cvičení 5
6 EFLAGS Marta Čudová - ISU, 3. cvičení 6
7 Poznámky Registry EAX, ECX a EDX lze používat libovolně a není potřeba jejich hodnotu na konci funkce obnovovat. Registry EBX, ESI a EDI lze používat libovolně, na konci funkce je potřeba jejich hodnotu obnovit. Tyto registry mohou být využívány pro lokální proměnné. Registry ESP a EBP jsou používány pro práci se zásobníkem dle popsaného postupu. V registru FLAGS je potřeba vždy na konci funkce zajistit, aby hodnota bitu DF byla nastavena vždy na hodnotu 0. Marta Čudová - ISU, 3. cvičení 7
8 Inicializace paměti Datové typy: Byte Word (= 2B) Double word (= 4B) Quad word (= 8B) Několik příkladů: var_byte db 10 var_char_array db Ahoj, 0 var_dw_array dw 100, 150, 200 V.data sektoru definice dat (inicializace!) Definice proměnné var_byte o velikosti 1B a hodnotě 10. Definice polí. Více hodnot se oddělí čárkou = define word Všechny konstanty jsou lokální. Pro jejich zveřejnění je nutné použít klíčové slovo global. Marta Čudová - ISU, 3. cvičení 8
9 Inicializace paměti Datové typy: Byte Word (= 2B) Double word (= 4B) Quad word (= 8B) V.bss sektoru deklarace neinicializovaných dat proměnné Několik příkladů: byte_buffer resb 64 Rezervuj 64 bajtů pro proměnnou byte_buffer. word_buffer resw 1 Rezervuj 1 word. Marta Čudová - ISU, 3. cvičení 9
10 Adresování paměti Paměť lze indexovat pomocí: Přímé adresy (konkrétní pevná adresa) Nepřímé adresy (registry) Ukazatele přes bázový registr Ukazatel v index registru Pro získání dat z určité adresy nebo zápisu dat na danou adresu použijeme hranaté závorky [ ] Viz příklady na wiki Formát nepřímého adresování V 16b režimu: [ Bázový + Indexový + Konstanta ] V 32b režimu: [ Bázový + Indexový * Měřítko + Konstanta ] Index. registry SI, DI Pracujeme ve 32 bitovém režimu -> všechny adresy budou mít vždy 32 bitů! Bázové registry BX, BP Index. a bázové registry: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP Měřítko: 1, 2, 4, 8 (byte, word, dword, qword) jak velká je lego kostka Marta Čudová - ISU, 3. cvičení 10
11 Cvičení v debuggeru Přímé adresování %include "rw inc" section.data var1 dw 200 var2 dw 200,100 var3 db 7, 15, 155 section.text _main: Závorky => chci hodnotu! mov ax,[var1] ;použití konstantního ukazatele (symbolické adresy) mov bx,[var2+2] ;použití konstantního ukazatele (symbolické adresy) s offsetem mov cl,[var3] mov ch,[var3+1] mov dl,[var3+2] ret pole wordů H e l l o! 0 C:pole[0] -> 1 pole[10] ->! Asm:[pole + 0] -> 1 [pole + 10] -> H [pole + 20] ->! C vytváří abstrakci, v Asm musíte velikost lego kostky znát sami! Marta Čudová - ISU, 3. cvičení 11
12 Cvičení v debuggeru Nepřímé adresování %include "rw inc" section.data var dw 200 dw_array dw 200,100,300 dd_array dd 1, 1500, 2500, -5 section.text _main: mov ebx, dword 0 mov ax,[dw_array+ebx] Musím říct velikost! Je stejná jako velikost registru, do kterého cpu tu hodnotu. ;použití ukazatele + indexu přes bázový registr mov ax,[dw_array+ebx+2] ;použití ukazatele + indexu přes bázový registr + posun o konstantu mov esi, 2 mov eax, [dd_array+ebx] mov ecx, [dd_array+ebx+esi*4+4] ret Marta Čudová - ISU, 3. cvičení 12
13 Cvičení v debuggeru Ukazatel přes bázový registr %include "rw inc"?? ? section.data var dw 200 dw_array dw 200,100,300 db_array db 1, 5, 10, 15 mov ebx, db_array section.text _main: mov ebx, db_array ;Ukládáme adresu vždy 32bitů mov al, [ebx] ;Tady zohledňujeme velikost datového typu (byte -> 8 bitový registr) ret Úkol: Použijte pole dw_array (prvku typu word), adresu ukazující na druhou položku tohoto pole vložte instrukcí mov do vhodně velkého registru. Hodnotu této položky pak přesuňte do jiného registru, vhodné velikosti. Pozorujte v debuggeru. mov registr, adresa_proměnné mov registr, [hodnota_proměnné] Marta Čudová - ISU, 3. cvičení 13
14 Cvičení v debuggeru Ukazatel přes index registr %include "rw inc" section.data db_string db ISU cviceni 3,0 section.text _main: mov esi, db_string ;Ukládáme adresu vždy 32bitů mov al, [esi+0] ;Přesun 8 bitové hodnoty z adresy uložené v registru call WriteChar ;Výpis hodnoty, funkce definovaná v rw inc mov al, [esi+1] ;Přesun 8 bitové hodnoty z adresy uložené v registru esi posunuté o 1B do registru al call WriteChar ret Marta Čudová - ISU, 3. cvičení 14
15 Cvičení v debuggeru Zápis do paměti %include "rw inc" section.data uk_char db ' ' uk_byte db 10h, 20h, 30h, 40h uk_word dw 1122h, 3344h, 5566h uk_dword dd h section.text _main: xor eax, eax ; eax = 0 xor ebx, ebx ; ebx = 0 mov [uk_byte], al ; [uk_byte + 0] = 0 mov [uk_word + ebx], ax mov edx, [uk_dword] mov ebx, uk_word mov [ebx], edx ; [uk_word] = 5678h ; [uk_word + 2] = 1234h ; konstanty (nutno definovat velikost zdrojového operandu) mov [uk_byte], byte 0ffh mov [ebx], byte 255 mov [ebx+1], word 1234h mov [ebx+3], dword h ret Marta Čudová - ISU, 3. cvičení 15
16 Little Endian vs. Big Endian Způsob ukládání dat do paměti pořadí bajtů Jeden ze základních zdrojů nekompatibility při ukládání a výměně dat v digitální podobě (např. přenos binárních souborů, síťová komunikace mezi různými platformami). Little-Endian Nejméně významný bajt (LSB) se uloží na paměťové místo s nejnižší adresou. Př. Procesory Intel Pentium Big-Endian Nejvíce významný bajt (MSB) se uloží na paměťové místo s nejnižší adresou. Marta Čudová - ISU, 3. cvičení 16
17 Pokud stihneme Kdyžtak probereme na dalším cvičení Marta Čudová - ISU, 3. cvičení 17
18 MOV, ADD, SUB MOV cíl, zdroj Přesune obsah zdrojového operandu do cílového MOV reg1,reg2 MOV [adr],reg MOV reg,[adr] MOV reg,konst MOV [adr], konst (MOVSX, MOVZX MOV se znaménkovým a bezznaménkovým rozšířením při přesunu dat z menšího do většího registru) ADD cíl, zdroj Přičte obsah zdrojového operandu k cílovému ADD reg1,reg2 ADD [adr],reg ADD reg,[adr] ADD reg, konst ADD [adr], konst SUB cíl, zdroj Odečte obsah zdrojového operandu od cílového SUB reg1,reg2 SUB [adr],reg SUB reg,[adr] SUB reg, konst SUB [adr],konst Marta Čudová - ISU, 3. cvičení 18
19 Několik zásad Velikost obou operandů musí být stejná (jen stejně velké lego kostky tvoří pár) Nelze použít dva paměťové operandy MOV adr, adr Pokud je jedním z operandů registr, pak určuje velikost Pokud ani jedním z operandů není registr, jeho velikost musí určit programátor pomocí datového typu (klíčová slova byte, word, dword) Marta Čudová - ISU, 3. cvičení 19
20 Zásobník Část paměti počítače vyhrazená k ukládání dat potřebných pro samotný chod programu. Slouží k: Ukládání hodnot registrů. Ukládání návratových adres funkcí při jejich volání Předávání parametrů ve vyšších programovacích jazycích. Ukládání lokálních proměnných. Princip LIFO. Na vrchol zásobníku ukazuje adresa uložená v ESP Na dno zásobníku ukazuje adresa uložená v EBP Přidáváním dat do zásobníku se ESP automaticky snižuje o velikost vkládaného registru nebo čísla a naopak. Marta Čudová - ISU, 3. cvičení 20
21 Zásobník Práce se zásobníkem: PUSH zdroj (obsah zdroje registr, paměť, hodnota se vloží na zásobník) POP cíl (ze zásobníku vlož do cíle registr, paměť) 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. 0 mpm nebo 1000 mnm 1000 mpm 0 mnm Marta Čudová - ISU, 3. cvičení 21
22 Díky za pozornost
ISU Cvičení 7. Marta Čudová
ISU Cvičení 7 Marta Čudová Supercomputing Technologies Research Group Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole icudova@fit.vutbr.cz Osnova
VíceISU Cvičení 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í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íceISU 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í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í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í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í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í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í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ř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í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í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í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í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í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í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í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í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í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í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í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íceAssembler - 4.část. poslední změna této stránky: 9.2.2007. Zpět
1 z 11 19.2.2007 7:51 Assembler - 4.část poslední změna této stránky: 9.2.2007 Zpět 1. Proměnlivý počet parametrů Funkce s proměnlivým počtem parametrů lze v Assembleru implementovat stejně jako v C++.
Ví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í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íceDatové typy a struktury
atové typy a struktury Jednoduché datové typy oolean = logická hodnota (true / false) K uložení stačí 1 bit často celé slovo (1 byte) haracter = znak Pro 8-bitový SII kód stačí 1 byte (256 možností) Pro
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í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í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í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íceZá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í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í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í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í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í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í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íceÚroveň strojového kódu procesor Intel Pentium. Adresovanie pamäte
Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Praktické programovanie assemblerových funkcií Autor:
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íceY36SAP - aritmetika. Osnova
Y36SAP - aritmetika Čísla se znaménkem a aritmetické operace pevná a pohyblivá řádová čárka Kubátová 2007 Y36SAP-aritmetika 1 Osnova Zobrazení záporných čísel Přímý, aditivní a doplňkový kód a operace
VíceReprezentace dat v informačních systémech. Jaroslav Šmarda
Reprezentace dat v informačních systémech Jaroslav Šmarda Reprezentace dat v informačních systémech Reprezentace dat v počítači Datové typy Proměnná Uživatelské datové typy Datové struktury: pole, zásobník,
VíceProgramování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9)
Programování v C++ Úplnej úvod Co se naučíte? tak samozřejmě C++, s důrazem na: dynamické datové struktury Objektově Orientované Programování STL (standardní knihovna šablon) vytváření vlastních šablon
Ví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í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í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í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íceProgramová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íceA51 MACRO ASSEMBLER POKUSNY PROGRAM DATE 10/3/007 PAGE 1
Demonstrač nítext k předná š ce Mikroprocesory v přístrojové technice, kat. měření. A51 MACRO ASSEMBLER POKUSNY PROGRAM DATE 10/3/007 PAGE 1 MS-DOS MACRO ASSEMBLER A51 V4.4 OBJECT MODULE PLACED IN DEMC.OBJ
VíceIPA - Lab.1 Úvod do programování v ASM
IPA - Lab.1 Úvod do programování v ASM Ondřej Klubal http://www.fit.vutbr.cz/~iklubal/ipa/ 2014 Ondřej Klubal IPA - Lab.1 1 / 16 Osnova Nástroje Konvence volání Použití DLL Windows API Makra NASM + VS
VíceStruktura a architektura počítačů (BI-SAP) 6
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 6 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
Vícev aritmetické jednotce počíta
v aritmetické jednotce počíta tače (Opakování) Dvojková, osmičková a šestnáctková soustava () Osmičková nebo šestnáctková soustava se používá ke snadnému zápisu binárních čísel. 2 A 3 Doplněné nuly B Číslo
VíceMichal 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í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í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íceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová
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í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Č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ícezení Koncepce připojení V/V zařízení POT POT ... V/V zařízení jsou připojena na sběrnici pomocí řadičů. Řadiče Připojení periferních zařízení
Připojení periferních zařízen zení 1 Koncepce připojení V/V zařízení V/V zařízení jsou připojena na sběrnici pomocí řadičů. Řadiče specializované (řadič disku) lze k nim připojit jen zařízení určitého
VícePJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných
PJC Cvičení #2 Číselné soustavy a binární reprezentace proměnných Číselné soustavy Desítková (decimální) kdo nezná, tak...!!! Dvojková (binární) - nejjednodušší Šestnáctková (hexadecimální) - nejpoužívanější
Ví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í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íceIUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje
Konstanty I možnosti: přednostně v paměti neexistuje žádný ; o preprocesor (deklarace) #define KONSTANTA 10 o konstantní proměnná (definice) const int KONSTANTA = 10; příklad #include v paměti
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íceZáklady programování (IZP)
Základy programování (IZP) Pá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 5. týden
VíceMichal Brandejs. Mikroprocesory Intel 8086 80486
Michal Brandejs Mikroprocesory Intel 8086 80486 Copyright Michal Brandejs, 1991, 2010 Fakulta informatiky, Masarykova univerzita, Brno Michal Brandejs Mikroprocesory Intel 8086 80486 The following are
Ví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í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íceZá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Ú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í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íceČtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
Více24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
VíceC2115 Praktický úvod do superpočítání
C2115 Praktický úvod do superpočítání IX. lekce Petr Kulhánek, Tomáš Bouchal kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137
VíceOdvozené a strukturované typy dat
Odvozené a strukturované typy dat Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 14. listopadu 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Odvozené a strukturované typy dat 14. listopadu
VíceKlimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3
Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT Třída: 4.C Skupina: 3 Klimatizace Zpráva číslo: 3 Dne: 08.01.2007 Soupis použitých přístrojů: přípravek s μc 8051 přípravek s LCD přípravek
VícePrincipy 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íce3. ZÁKLADNÍ INSTRUKCE JAZYKA TECHNOL
Základní jazyka PLC836 3. ZÁKLADNÍ INSTRUKCE JAZYKA TECHNOL Jazyk TECHNOL je určen pro efektivní programování interfejsu pro systémy CNC8x9 a CNC872. Jazyk používá výhradně symbolických adres a to i při
VícePetr 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íceInstrukční soubory, registrové struktury, způsoby adresace. INP 2008 FIT VUT v Brně
Instrukční soubory, registrové struktury, způsoby adresace INP 2008 FIT VUT v Brně Základní registry počítače + datová cesta IR Příznaky CC M DR PC MAR ALU Operand Výsledek DR - datový registr; přes který
VícePaměť počítače. alg2 1
Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových
VíceVí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í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íceZá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íceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová
VíceProgramovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
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íceZákladní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy
Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou
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í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íce2 Datové typy v jazyce C
1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,
VíceKoncepce 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íceMetody připojování periferií BI-MPP Přednáška 2
Metody připojování periferií BI-MPP Přednáška 2 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011
Ví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íce- dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h. - jak na vlastní makro:
21.4.2009 Makra - dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h - jak na vlastní makro: #define je_velke(c) ((c) >= 'A' && (c)
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í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íceAlgoritmizace a programování
Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,
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í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íce