Kontakty Webpage přednášky: –http://ulita.ms.mff.cuni.cz/mff/sylaby/PRG017.HTML Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

SoftPC SQL Prezentace nového SQL modulu Mzdy a personalistika
Programování v C jazyku - SEMINÁŘ
13AMT Procesory I. Lecture 2 Ing. Martin Molhanec, CSc.
Přednáška č. 5 Proces návrhu databáze
Pole, ukazatele a odkazy
Programovací jazyky Programovací jazyky jsou jazyky sloužící k tvorbě počítačových programů Dělení:  nižší  vyšší jazyky primitivní, jejichž instrukce.
Preprocess Úvod do tvorby funkcí Princip preprocesoringu Direktivy preprocesoru Podmíněný překlad Základy tvorby funkcí Zjednodušený popis principu předávaní.
Programování v C++ Cvičení.
Principy překladačů Běhová podpora Jakub Yaghob. Běhová podpora Statická podpora jazyka Překladač Interface na knihovny Hlavičkové soubory Dynamická podpora.
Principy překladačů Překladač Jakub Yaghob. Literatura a slajdy Aho, Sethi, Ullman: Compilers - Principles, Techniques and Tools, Addison-Wesley 1986.
Principy překladačů Interpretované jazyky Jakub Yaghob.
Programování v asembleru - TASM
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Prostředí pro tvorbu strukturovaných učebních textů Ing. Jiří Přibil Fakulta managementu VŠE Rozvojový grant Ministerstva školství, mládeže a tělovýchovy.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
C# - pointery Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
PHP – Základy programování
Informatika / programování
Výrok „Počítač je pouze tak inteligentní jako jeho uživatel.“ (Radek Lochman, dnes)
Modelování a simulace MAS_02
Alg91 Textové soubory Na rozdíl od jiných typů souborů jsou textové soubory určené pro gramotné lidské oko. Textový soubor je posloupnost znaků členěná.
Operační systém (OS) ICT Informační a komunikační technologie.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze
Dokumentace informačního systému
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
2 Fučíková Sylvie HR/Win – moderní technologie pro osvědčené aplikace.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Gymnázium, Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Hodonín Úvod do programování.
Vzdálené počítačové sítě a programování v prostředí Windows Okruhy ke zkoušce z předmětu: Ing. Zdeněk Votruba LVALVA.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Programování POCSI. Programovani/POCSI2 Základní pojmy Akce - děj nad objekty, mající začátek a konec, a mající přesně definovaný účinek. Příkaz - popis.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Informatika pro ekonomy II přednáška 5
JUI přednáška Vstup a výstup, cykly RNDr. Jiří Dvořák, CSc.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Programování v JSA.
Roman Nasadil – ME4C PROGRAMOVÁNÍ V JSA. CO TO JE JSA?
doc. RNDr. Zdeněk Botek, CSc.
Copyright (C) 1999 VEMA počítače a projektování, spol. s r.o.1 Komunikace Aplikací VEMA G1 s Microsoft Windows Martin Šustr.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Visual Basic - programování
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Pavel Olšan & Ondřej Mrzena.  Co je server  Funkce  Verze Windows a instalace  Active Directory  Účty  DNS  DHCP  .
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Jazyk C++ Přednáška 1.. Přednáška C++ č.12 Název C++ –Starší verze jazyka, společně označované jako „C with Classes“ (česky C s třídami), byly používány.
Kontakty slajdy: ftp://ulita.ms.mff.cuni.cz/predn/POS.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Diskový oddíl. Diskové oddíly (partition) slouží k rozdělení fyzického disku na logické oddíly, se kterými je možné nezávisle manipulovat jeden disk se.
Technika počítačů 3. Mikroprocesory © Milan Keršlágerhttp:// Obsah: ●
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 4: Programovací jazyk C Bc. Radek Libovický.
Základy programování mikropočítačů První program v jazyce symbolických adres.
CZ.1.07/1.5.00/ Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/ Střední odborná škola elektrotechnická, Centrum odborné přípravy.
Překladače 1. Překladače a programovací jazyky © Milan Keršlágerhttp:// Obsah:
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Odborný výcvik ve 3. tisíciletí Tato prezentace byla vytvořena v rámci projektu.
Unix a Internet 9. Samba © Milan Keršlágerhttp:// Obsah: ●
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Překladače Operační paměť © Milan Keršláger
Počítače a programování 2
Vypracoval / Roman Málek
Internet – pojmy, služby
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
1. ročník oboru Mechanik opravář motorových vozidel
Přednášky z Distribuovaných systémů
Transkript prezentace:

Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické informace (manuály ap.): –ftp://ulita.ms.mff.cuni.cz/techdoc/index.html Mail:

Programování v asembleru: + & - Historicky: +rychlost, efektivita kódu +přístup „do přízemí“ –složitost –obtížná udržovatelnost, rozšiřitelnost –nulová přenositelnost Aktuální stav: –rychlost, efektivita kódu ±přístup „do přízemí“ –složitost –obtížná udržovatelnost, rozšiřitelnost –nulová přenositelnost

Asemblery pro Intel x86 MASM (Microsoft): –„klasický“ asembler (alespoň v MS - DOS, Win - prostředí) –ve zmíněném prostředí de-facto standard podpora např. i od překladačů VPJ (inline asm, volací konvence atd.) –nepříliš přehledný, z výukového hlediska dost nevhodný víceznačné konstrukce ap. TASM (Borland): –mód kompatibility s MASMem –nový mód činnosti (IDEAL), který odstraňuje některé z nedostatků MASMu –není tak rozšířený jako MASM NASM (public-domain): –má blízko k TASMu (IDEAL módu) –zadarmo –silný a „čistý“ makroprocesor –postrádá některé užitečné konstrukty –! záludné nekompatibility s TASMem

Struktura asemblerského kódu Zjednodušeně: –asembler = user-friendly hex feeder –asm kód představuje nejnižší rozumnou úroveň programování –jde vlastně o přímou definici obsahu paměti Př.: int fce(int a, int b)DATASEG {_cntDD10 static int cnt=10;CODESEG _fce:moveax,[esp+4]; a int p;shleax,2; a*4 p = glob+a*4;addeax,[_cnt] return p-b;subeax,[esp+8]; -b }ret

Struktura asemblerského kódu II Z jazykového hlediska se v asemblerském kódu vyskytuje několik tříd konstruktů: –popis instrukcí procesoru umožňují zápis instrukcí procesoru v lidsky srozumitelné formě shl[_pole+ebx*4], 2 moveax, [es:ebx+2*ecx] –direktivy asembleru řídí činnost asembleru (překladače) ALIGN 4 EXTERN_pole: BYTE speciálním případem jsou direktivy pro emisi dat _poleDB128 DUP (?) –direktivy preprocesoru rozšiřují možnosti asembleru o konstrukty pro zpracování textu (include, macro,...) INCLUDE “header.inc”

Struktura asemblerského kódu III Asembler má přísnější požadavky na formát zdrojového textu než např. většina VPJ: –každá řádka zdrojového textu odpovídá následujícímu schématu: [ :] [ ] [ ] [; ] –Všechny tři výše zmíněné kategorie konstruktů jsou podřízeny tomuto schématu Produkovaný kód a data jsou organizovány do tzv. logických segmentů (sekcí) –umožňují přizpůsobení kódu požadavkům OS (např. oddělení kódu od dat ap.) –umožňují použitelnost i na složitějších architekturách (např. segmentovaných) –zjednodušují a zpřehledňují kód

Překlad Překlad kódu probíhá v několika fázích: –preprocesor (preprocess) zajistí vyhodnocení preprocesorových direktiv probíhá na čistě textové úrovni (Unixové asemblery a preprocesory) je do jisté míry ovlivněn a podřízen struktuře a syntaxi asembleru (DOS-Windows asemblery) –vlastní překlad (assemble) zajistí překlad mnemonik instrukcí do binární formy vyhodnotí symbolické adresy je řízen direktivami v kódu –spojování (link) - někteří guru používají český termín zlinkování zkombinuje binární relokovatelný výstup(y) předchozí fáze překladu do výsledného binárního souboru vyřeší relokace (mezimodulové odkazy), které zůstaly z fáze překladu

Překlad II (pp)  SRC  asm  OBJ  link  EXE Modul A Sekce TEXT Sekce DATA Sekce BSS Modul B Sekce TEXT Sekce PRIVDATA Modul C Sekce TEXT Sekce DATA Sekce PRIVDATA OBJ Modul A Sekce TEXT Sekce DATA Sekce BSS OBJ Modul B Sekce TEXT Sekce PRIVDATA OBJ Modul C Sekce TEXT Sekce DATA Sekce PRIVDATA EXE... Sekce TEXT Sekce A:TEXT Sekce B:TEXT Sekce C:TEXT Sekce DATA Sekce A:DATA Sekce C:DATA

Př.: „Hello world“ I TESTMAIN.ASM: IDEAL MODELsmall, C CODESEG EXTRNreverse:PROC movds,ax movch,0 movcl,[es:80h]; UPA len movebx,81h; UPA leaedi,[buffer] callreverse

Př.: „Hello world“ II TESTMAIN.ASM (pokr.): mov[BYTE ds:edi],’$’ leaedx,[buffer] movah,09h int21h; print moveax,4C00h int21h; exit DATASEG bufferDB128 DUP (?) STACK512 ENDstart

Př.: „Hello world“ III TESTREV.ASM: IDEAL MODELsmall, C PUBLICreverse CODESEG reverse:addebx,ecx lp:decebx moval,[es:ebx] mov[ds:edi],al incedi dececx jnzlp ret END

Př.: „Hello world“ IV Postup kompilace (TASM): –> TASM /zi testmain –> TASM /zi testrev –> TLINK /v testmain testrev, test