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)

Základy programování (IZP)

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

Základy programování (IZP)

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

První kroky s METEL IEC IDE

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

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

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

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

Jazyk symbolických adres

ISU Cvičení 1. Marta Čudová

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

Základy programování (IZP)

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

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

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

Procesor z pohledu programátora

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

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

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

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

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

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

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

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

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

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

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

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

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

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

MIDAM Verze 1.1. Hlavní okno :

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Úvod do programování. Lekce 1

IP kamera. Uživatelský manuál

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

x86 assembler and inline assembler in GCC

PB071 Úvod do jazyka C

Postup získání licence programu DesignBuilder v4

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

series Uživatelská příručka Přehled Verze pro Windows RICOH Printer Verze pro Mac Odstraňování potíží

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

Instalace a nastavení PDFCreatoru

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

Základy programování (IZP)

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

REbejs. 1. workshop (draft0)

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

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

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

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

.NET Framework verze Program pro připojení ke vzdálené ploše (RDC) verze

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

Výše uvedené soubory jsou zabalené v souboru R28txt (po rozbalení nakopírujte do základního adresáře textové verze programu tam, kde je program RECON.

Algoritmy I. Cvičení č.1 ALGI 2015/16

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

Operační systémy. Cvičení 3: Programování v C pod Unixem

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ , 5.1 a 5.2 8/14

/ NVR-4008 / NVR-4016

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

1. Konfigurace projektu a prostředí

Průvodce pro přenos dat

Postup přechodu na podporované prostředí. Přechod aplikace BankKlient na nový operační systém formou reinstalace ze zálohy

Zálohování v MS Windows 10

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

Step 7 test Programu pomocí online spojení s CPU

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

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

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

THEOPHILOS. (návod k použití)

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

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

Ladibug Software pro vizuální prezentaci Document Camera Návod k použití

METODICKÝ POKYN PŘIDÁNÍ A PŘEHRÁNÍ VIDEA V PREZENTACI

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

Téma 4: Práce s CentOS. Instalace softwarových balíčků pomocí yum

Ovladač Fiery Driver pro systém Mac OS

Program slouží k provozní evidenci chemických látek, směsí, archivaci bezpečnostních listů a tvorbě rychlých přehledů.

Co vás čeká. Osvojení si základy analytického myšlení při psaní algoritmů pomocí jazyka Python.

Přehled verzí aplikace WinTechnol

Paralelní výpočty na clusteru KMD

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Aktualizace softwaru Uživatelská příručka

Ú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

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

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

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

Obsah: Bezpečnost Vybavení Vlastnosti Popis a funkce Pracovní postupy Nastavení Záznam teploty...

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

Architektury CISC a RISC, uplatnění v personálních počítačích

Transkript:

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 dnešního cvičení Vývojové prostředí pro asemblery, překlad, sestavení a spuštění programu v příkazové řádce Codasip Studio Codeblocks IDE Dark side of Windows command line Nasm a GoLink Užitečné prográmky Marta Čudová - ISU, 2. cvičení 2

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í 3

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í 4

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í 5

Program v Assembleru 3 sekce section.data Deklarace inicializovaných dat a konstant nemění se za běhu. section.bss Deklarace proměnných. section.text Kód Segmenty section.text main: global main ; your code 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í 6

Codasip Studio (Eclipse) 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í 7

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í 8

Hello world! %include "rw32-2015.inc" section.data msg db 'Hello, world!', 0 section.text Tento soubor překopírujte z isutools-2016 do daného projektu Proměnná obsahující řetězec zakončený 0. global main main: mov esi, msg call WriteString ret WriteString je definovaný v rw32-2015.inc: Vypis retezce ukonceneho 0 (ASCIIZ), jehoz adresa je ulozena v registru ESI. Kód v nasm_sw1_win/lin.s zakomentujte nebo ho nahraďte kódem s Hello World. Marta Čudová - ISU, 2. cvičení 9

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í 10

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í 11

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í 12

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í 13

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í 14

Ruční překlad Prohlédněte si soubor rw32-2015.inc Definice dostupných funkcí, konstant, 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). nasm -f win32 [-g] helloworld.asm -> helloworld.obj golink helloworld.obj [/fo helloworld.exe] /console [/debug coff /entry:start] msvcrt.dll kernel32.dll -> helloworld.exe 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. Marta Čudová - ISU, 2. cvičení 15

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í 16

Příští cvičení Podíváme se na zobrazení binárních čísel, hlavně záporných Probereme typy transformací Co budete potřebovat? Tužku a papír (budeme ale pracovat i na počítači) Znalosti z prvního cvičení Účast na přednášce probírající dané téma vřele vítána Marta Čudová - ISU, 2. cvičení 17

Dík za pozornost