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

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

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

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

Soubory. Tomáš Oberhuber. Soubory. Soubory. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.

Soubory. Hung Hoang Dieu. Department of Mathematics Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 7

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Jazyk symbolických adres

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Úvod. Programovací paradigmata

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

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

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

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

MPASM a IDE pro vývoj aplikací MCU (Microchip)

Princip funkce počítače

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 23, 2016

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

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

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

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

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. December 7, 2016

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

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

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

ISU Cvičení 3. Marta Čudová

Adresní mody procesoru

Registrační číslo projektu: CZ.1.07/1.5.00/ Název projektu: Moderní škola 21. století. Zařazení materiálu: Ověření materiálu ve výuce:

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Textové soubory

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

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

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

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

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

Martin Flusser. November 1, 2016

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Programovací jazyky Přehled a vývoj

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

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

Překladač a jeho struktura

Procesor z pohledu programátora

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Transformace dat: používání syntaxe v SPSS

Generování vnitřní reprezentace programu

Algoritmizace prostorových úloh

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

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

10 Algoritmizace Příklad 2 Word 2007/ VBA

Architektury VLIW M. Skrbek a I. Šimeček

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

Visual Basic for Application

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

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

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

Přerušovací systém s prioritním řetězem

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

8 Makra Příklad 4 Excel 2007

Architektura procesorů PC shrnutí pojmů

Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.

Změna pro Školní vzdělávací program oboru vzdělání L/51 Podnikání - ŠVP platné od

VISUAL BASIC. Práce se soubory

Paměť počítače. alg2 1

x86 assembler and inline assembler in GCC

Opakování programování

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

9 Úprava maker Příklad 4 Word 2007/ VBA

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

Program a životní cyklus programu

Přednáška 2 A4B38NVS - Návrh vestavěných systémů 2014, kat. měření, ČVUT - FEL, Praha J. Fischer A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL 1

22. TVORBA UŽIVATELSKÝCH INSTRUKCÍ A MAKER

M4 PDF rozšíření. Modul pro PrestaShop.

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

11. Přehled prog. jazyků

Úvod z historie. Kompilátory. Kompilace / Kompilátor Compile / Compiler. Pojem kompilátoru. Úvod z historie

Algoritmizace a programování

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

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

Vysoké učení technické v Brně Fakulta informačních technologií ITP Technika personálních počítačů Služby ROM BIOS a BootROM

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

Martin Flusser. December 15, 2016

Program "Světla" pro mikropočítač PMI-80

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Architektura Pentia úvod

HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT

PODPROGRAMY PROCEDURY A FUNKCE

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

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

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

3. ZÁKLADNÍ INSTRUKCE JAZYKA TECHNOL

Mezinárodní kolo soutěže Baltík 2010, kategorie C a D

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Transkript:

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 programů vznikl jazyk symbolických instrukcí - assembler každé instrukci je přidělena zkratka operandy lze zapisovat také v snáze čitelnější formě na rozdíl od vyšších programovacích jazyků platí, že jeden příkaz assembleru vytváří typicky jednu instrukci procesoru assembler umožňuje definovat návěští, která negenerují žádnou instrukci assembler byl postupně vylepšen na macroassembler umožňuje psaní maker, která se rozvinou do několika příkazů assembleru a tím pádem generují i více instrukcí rozlišujeme tedy: strojové instrukce (machine instructions) asemblerové instrukce (assembler instructions) makro instrukce (macro instructions)

Překlad kódu v asembleru překlad probíhá obdobně jako u jiných jazyků samotný překlad provádí program hlasm high-level assembler následuje linkování

Zápis kódu v asembleru návěští (labels), pokud je použito, musí začínat na první pozici kód operace (opcode) musí být od návěští oddělen alespoň jednou mezerou operandy musí být od kódu instrukce odděleny alespoň jednou mezerou komentáře musí být od operandů odděleny alespoň jednou mezerou používá se následující konvence: návěští začíná na pozici 1 opcode začíná na pozici 10 operandy začínají na pozici 16 komentáře začínají na pozici 35 nebo 40 pro navázání na další řádek: napíše se jiný znak než mezera na pozici 72 na novém řádku se začíná na pozici 16 pokud řádek začíná hvězdičkou *, bere se celý řádek za komentář

Ukázka kódu 1 PGMNM SETUP 2 PROGRAM CODE 3 SNAPSHOT PGMNM,ENDPGM 4 ENDIT 5 CONSTANTS AND DATA 6 ENDPGM DS D 7 END

První příklad Napíšeme jednoduchý program, který sečte dvě celá čísla. dekadicky: 54321+12345=66666 hexadecimálně: x 0000D431 + x 00003039 = x 0001046A

První příklad Napíšeme jednoduchý program, který sečte dvě celá čísla. dekadicky: 54321+12345=66666 hexadecimálně: x 0000D431 + x 00003039 = x 0001046A Šablona s příklady a pomocná makra lze najít v: MCOE.CLASS.ASM.DATA MCOE.CLASS.ASM.SOURCE

První příklad 1 PGM1 SETUP 2 L 2,A 3 A 2,B 4 ST 2,SUM 5 SNAPSHOT PGM1,ENDPGM 6 ENDIT 7 A DC F 54321 8 B DC F 12345 9 SUM DS F 10 ENDPGM DS D 11 END

Rozbor kódu pgm1 je název programu setup makro které provede tzv. housekeeping routine uložení obsahu registrů l 2,a load načte 4 bajty (word) na adrese a do registru 2 a 2,b add přičti word na adrese b do registru 2 st 2,sum store ulož obsah registru 2 na adresu sum

Rozbor kódu pro sečtení dvou čísel jsme tedy využili registr 2 lze používat bez obav registry 2 až 11 registry 0, 1, 12, 13, 14, 15 mají speciální význam čísla určená ke sčítání jsou uložena na adresách a a b výsledek se zapisuje na adresu sum a, b a sum lze chápat jako proměnné ve vyšších jazycích definují se pomocí příkaz ds a dc

Rozbor kódu a dc f 54321 define constant vytvoří v paměti místo pro typ f tj. fullword (4 bajty) instrukce definuje návěští a, které ukazuje na stejné místo v paměti assembler zároveň na toto místo zapíše binární tvar pro číslo 54321 instrukce se jmenuje define constant, ale proměnná není konstanta, lze jí přepsat sum ds f define storage funguje stejně jako dc, ale na výsledné místo v paměti neukládá žádnou hodnotu

Rozbor kódu snapshot pgm1,endpgm jde o makro, které uloží na výstup obsah paměti mezi adresami pgm1 a endpgm to nám slouží k tomu, abychom si mohli překontrolovat, zda náš kód pracuje správně endit makro, které generuje ukončení programu a předání řízení operačnímu systému end instrukce assembleru značící konec programu

Překlad kódu překlad kódu je mnohem jednodušší než u vyšších jazyků assembler používá ukazatel do výsledného "objekt souboru" tzv. location counter s každou instrukcí v kódu zjistí její velikost a dekóduje operandy na výstup vloží příslušnou posloupnost bajtů pokud vložíme instrukci DS, vynechá se příslušně velká mezera proměnné jsou tedy uloženy přesně tam, kam je napíšeme vnitřní ukazatel asembleru lze ovládat speciálními příkazy makra se zpracovávají obdobně