ISU Cvičení 2. Marta Čudová

Podobné dokumenty
ISU Cvičení 2. Marta Čudová

ISU Cvičení 3. Marta Čudová

ISU Cvičení 7. Marta Čudová

IPA - Lab.1 Úvod do programování v ASM

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

Základy programování (IZP)

Základy programování (IZP)

Základy programování (IZP)

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Základy programování (IZP)

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

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

ISU Cvičení 1. Marta Čudová

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

Základy programování (IZP)

ČÁST 1. Základy 32bitového programování ve Windows

První kroky s METEL IEC IDE

CMS. Centrální monitorovací systém. Manuál

Jazyk symbolických adres

NASTAVENÍ PROGRAMU EVIDENCE AUTOBAZARU PRO OS VISTA, WIN7 a WIN8 LOKÁLNÍ INSTALACE (PRO 1 POČÍTAČ)

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

Téma 8: Konfigurace počítačů se systémem Windows 7 IV

v. 2425a Jak si na PC vypěstovat HTTP (WWW, Web) server a jak ho používat (snadno a rychle) by: Ing. Jan Steringa

Použití programu uscope k simulaci výukového přípravku pro předmět PMP

DINOX IP kamery řady: DDC-xxxx DDR-xxxx DDX-xxxx DDB-xxxx

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

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

Téma 1: Práce s Desktop. Téma 1: Práce s Desktop

Procesor z pohledu programátora

Téma 6: Konfigurace počítačů se systémem Windows 7 II

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Základy programování (IZP)

5 ÚVOD DO TESTOVÁNÍ SOFTWARE. 6 Testování software ve vývojovém prostředí MICROSOFT VISUAL STUDIO V hlavním menu volba Debug

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

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

PicoBlaze lekce 1: assembler, C překladač a simulační prostředí Jiří Svozil, Leoš Kafka, Jiří Kadlec svozil@utia.cas.cz

MIDAM Verze 1.1. Hlavní okno :

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

x86 assembler and inline assembler in GCC

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

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

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

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

Cvičení MI-PAP I. Šimeček, M. Skrbek, J. Trdlička

Adresní mody procesoru

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

REbejs. 1. workshop (draft0)

C2110 Operační systém UNIX a základy programování

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška I / 21

Paralelní výpočty na clusteru KMD

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

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

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

Programování. Debugging a testování. Martin Urza

Instalace a nastavení PDFCreatoru

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

ALGORITMIZACE A PROGRAMOVÁNÍ

PB071 Úvod do jazyka C

Aktivací DOWN módu je možné zkrátit dobu přenosu parametrů (pouze však za klidu měniče).

Pohled do nitra mikroprocesoru Josef Horálek

Sentech AL 7000 C. Instalace a ovládání programu BREATH

MSP 430F1611. Jiří Kašpar. Charakteristika

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

Matematika v programovacích

Archive Player Divar Series. Návod k obsluze

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

VYÚČTOVÁNÍ DANĚ ZE ZÁVISLÉ ČINNOSTI, SRÁŽKOVÉ DAŃE

Ladibug Software pro vizuální prezentaci Visual Presenter Návod k použití

Assembler DRUHÁ ČÁST OBSAH.

ENBRA EWM UŽIVATELSKÝ NÁVOD. Návod na software ENBRA EWM, který je určen pro dálkový odečet měřičů.

Windows - základy. Hlavním vypínačem na základní jednotce. K datům uloženým do výchozí složky.

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Uživatelská příručka práce s aplikací IDT

Úvod do programování. Lekce 1

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

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

Téma 7: Konfigurace počítačů se systémem Windows 7 III. Téma 7: Konfigurace počítačů se systémem Windows 7 III

Nastavení programu pro práci v síti

Zálohování v MS Windows 10

Téma 12: Správa diskových jednotek a system souborů. Téma 12: Správa diskových jednotek a systémů souborů

Demoprojekt Damocles 2404

IP kamera. Uživatelský manuál

Téma 5: Konfigurace počítačů se systémem Windows 7. Téma 5: Konfigurace počítačů se systémem Windows 7

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Princip funkce počítače

HypEd4 Uživatelská příručka 2004 HYPEL

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

MS Excel makra a VBA

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

MS Windows 7. Milan Myšák. Příručka ke kurzu. Milan Myšák

ZMODO NVR KIT. Instalační příručka

Projekt do předmětu PAS. Textový editor

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

Průvodce pro přenos dat

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

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

Úvod. Právě jste se registrovali na platformě cined.eu a váš účet byl schválenvaším přiděleným administrátorem.

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

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

Transkript:

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 jsem? SW pro plánování ultrazvukové léčby pomocí simulací šíření ultrazvukových vln a termálního šíření v lidském těle Plánování složitých a kooperujících výpočtů Výběr výpočetních zdrojů a konfigurace spuštění Plánování, spouštění a monitorování úloh Marta Čudová - ISU, 2. cvičení 2

Osnova dnešního cvičení Vývojové prostředí pro asemblery, překlad, sestavení a spuštění programu v příkazové řádce SASM IDE Dark side of Windows command line Nasm a GoLink Užitečné prográmky Codasip Studio (nebudeme probírat) Codeblocks IDE (nebudeme probírat) Marta Čudová - ISU, 2. cvičení 3

Motivace Já bych všechny ty internety a počítače zakázala. (Věra Pohlová, důchodkyně, anketa METRO, 1999) Marta Čudová - ISU, 2. cvičení 4

Co to je Assembler? Nízkoúrovňový programovací jazyk Symbolické instrukce procesoru Při překladu se převedou na reálné instrukce procesoru (do sekvence 0 a 1) Pracuje přímo s registry procesoru na rozdíl od vyšších programovacích jazyků ASSEMBLER! Marta Čudová - ISU, 2. cvičení 5

Pojmy Instrukce označení kódového příkazu pro provedené elementární operace procesoru. Posloupnost těchto instrukcí tvoří strojový kód. Různé procesory mohou mít různé sady takových instrukcí. Tvar (příklad): název operand1, operand2 (MOV EAX, 5) Registr malé ale velmi rychlé úložiště dat Je součástí procesoru, jejich počet a velikost záleží na dané architektuře Uchovávají data a adresu Př. Intel 32-bit 8 32-bit registrů pro obecné použití Intel 64-bit 16 64-bit registrů pro obecné použití Registry pro obecné použití: Datové (EAX aritmetické operace, input/output, EBX - adresování, ECX čítač v cyklech, EDX input/output, aritmetické operace mul, div) Ukazatelé (EIP ukazuje na následující instrukci, ESP offset v rámci programového zásobníku, EBP pomáhá při referencování proměnných předávaných do subrutiny) Indexové (ESI zdrojový index pro operaci s řetězci, EDI cílový index pro operace s řetězci) Marta Čudová - ISU, 2. cvičení 6

SASM IDE Na wiki si stáhněte SASM-ISU-2018.zip a rozbalte archiv na disku P. Překlad Spuštění Debugger Velikost vypisované hodnoty (byte, word, ) Skok na další breakpoint Krokování po řádcích, skok do funkce Stop Výpis paměti Zobrazení registrů Změna formátu (bin, hex, ) Pokud pracujete s polem Výpis hodnoty proměnné var: var Výpis hodnoty z registru ax: $ax Výpis adresy len: &len (např. při použití equ) Marta Čudová - ISU, 2. cvičení 7

Program v Assembleru 3 sekce section.data Deklarace a definice inicializovaných dat a konstant nemění se za běhu. 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 Kód Segmenty Má fixní velikost Data (section.data + section.bss), code (section.text), stack (obsahuje data předávaná mezi funkcemi) Každý segment je odkazován ukazatelem v segment registru Marta Čudová - ISU, 2. cvičení 8

Hello world! %include "rw32-2018.inc" section.data msg db 'Hello, world!', EOL,0 section.text CMAIN: mov esi, msg call WriteString ret Knihovna funkcí, např. čtení z klávesnice, výpis na obrazovku, Proměnná msg obsahující řetězec zakončený EOL a 0. WriteString je definovaný v rw32-2018.inc: Výpis řetězce ukončeného 0 (ASCIIZ), jehož adresa je uložena v registru ESI. Adresujeme po bytech. Marta Čudová - ISU, 2. cvičení 9

Příkazová řádka ve Windows Jak ji spustit? Nabídka Start napiš cmd (enter) Základní příkazy, které budeme používat: Příkaz ve Win Příkaz v Linux Co to dělá dir ls Zobrazí seznam složek cd jmeno_slozky chdir jmeno_slozky cd jmeno_slozky Změní aktuální složku. D: cd jmeno_slozky Změna na disk D. Viz https://commandwindows.com/command3.htm Marta Čudová - ISU, 2. cvičení 10

Ruční překlad Prohlédněte si soubor rw32-2018.inc Definice dostupných funkcí, konstant, bin\nasm.exe -f win32 [-g] i bin\ helloworld.asm helloworld.obj Překladač program, který překládá kód zapsaný pomocí vyšších programovacích jazyků do jazyka nižšího (do strojového kódu). bin\golink.exe helloworld.obj [/fo helloworld.exe] /console [/debug coff /entry:start] /mix msvcrt.dll kernel32.dll Linker program, který spojuje objektové soubory a knihovny do jediného spustitelného souboru (popř. knihovny). Řeší reference nedefinovaných symbolů jejich vyhledáním v ostatních objektových souborech. helloworld.exe Marta Čudová - ISU, 2. cvičení 11

Alternativy příkazové řádky Moba Xterm Linux terminal pro Win s X11 serverem, SSH klientem a mnoho více Umožňuje připojení externích disků Power Shell Vestavěný ve Win Umožňuje skriptování, pipelinování a mnoho dalšího Marta Čudová - ISU, 2. cvičení 12

Příští cvičení Práce s pamětí a její adresování Budeme si hrát s debuggerem Co budete potřebovat? Znalosti z přednášky a předchozího cvičení Marta Čudová - ISU, 2. cvičení 13

Pro zájemnce: Další slajdy obsahují menší tutoriál, jak pracovat i s jinými nástroji, které se používaly v ISU loni. Pokud by si někdo chtěl vyzkoušet i něco jiného, tak může (Codasip Studio má třeba lepší debugger). Na cvičeních však s těmito nástroji pracovat nebudeme. Marta Čudová - ISU, 2. cvičení 14

Codasip Studio (Eclipse) - nepovinné Kde ho najít? Hledej Exáč v "Q:\codasip Workspace, ve kterém si budete ukládat všechna cvičení, si vytvořte na disku P! Nová verze Stáhněte z wiki a nainstalujte Eclipse IDE Workspace nastavte na./isu (mělo by se nabídnout samo). Stáhněte si isu-tools-2016.zip. Marta Čudová - ISU, 2. cvičení 15

Aby to nebylo tak jednoduché Pokud pracujete v linuxu, pak Překopírujte složku /jre z Q:/codasip do složky se staženým Eclipsem (ve Windows by to mělo fungovat, ale když ji překopírujete, nic se nestane). V project exploreru vidíte několik projektů hp* jsou cvičení na hypotetické počítače, které probírat nebudeme. Koho to však zajímá, může si cvičení projít doma. Pozor! Projekt nelze spustit, pouze debuggovat. V editoru rozklikněte nasm_sw1 - Otevřete Makefile a proveďte tyto změny: Pokud jste ve Windows: Doplňte LDFLAGS=-Lc:/windows/system32 -lkernel32 -lmsvcrt Pracujte se souborem nasm_sw1_win.s Pokud jste v Linuxu: Změňte LD=ld na LD = gcc Doplňte LDFLAGS=-m32 Změňte formát na $(ASM) -f elf32 -F dwarf -g -o $@ $< Pracujte se souborem nasm_sw1_lin.s Zkuste projekt spustit program by měl končit s kódem 12. Marta Čudová - ISU, 2. cvičení 16

Debugger v Codasip Studio (Eclipse) Zobrazí se obrazovka níže: Klikni na brouka pro spuštění debuggovacího módu Ovládací lišta debuggeru Klikněte na i pro krokování po instrukcích! Nezapomeňte do kódu vložit breakpoint. Indikátor, že jste v debuggeru Start debuggeru Žluté šipky určují krokování po řádcích, skok do funkce, Pro přechod do editoru musíte nejprve vypnout debugger! Zastavení debuggeru Marta Čudová - ISU, 2. cvičení 17

Debugger v Codasip Studio (Eclipse) Lze sledovat jednotlivé registry. Při změně dojde k jejich zvýraznění. Krokování programu po instrukcích. Modrá šipka ukazuje právě zpracovávanou instrukci. Marta Čudová - ISU, 2. cvičení 18

CodeBlocks IDE Stáhněte a nainstalujte z wiki Nastavení compileru a debuggeru by též mělo být na wiki Stáhněte si isu_exercise_2.zip a rozbalte. Nezapomeňte nastavit cesty (viz wiki) Při debuggování klikněte na okýnko v broučkem v horní liště (debugging windows) a nechce si zobrazit CPU registers, Disassembly a Memory. Marta Čudová - ISU, 2. cvičení 19

CodeBlocks IDE Sestavení a spuštění projektu Ovládání debuggeru Debugging windows - volba Projekty Vložte breakpoint Debugging windows Marta Čudová - ISU, 2. cvičení 20

Dík za pozornost