Kubatova 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



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

Kubatova Y36SAP 9. Strojový kód ISA architektura souboru instrukcí střadačově, zásobníkově orientovaná, GPR Kubátová Y36SAP-ISA 1

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

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

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

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Č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 k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Popis instrukční sady procesoru ADOP

Procesory, mikroprocesory, procesory na FPGA O. Novák, CIE 11 1

Procesor z pohledu programátora

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

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

Pohled do nitra mikroprocesoru Josef Horálek

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

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Princip funkce počítače

RISC a CISC architektura

Přednáška. Strojový kód a data. 4. Přednáška ISA J. Buček, R. Lórencz

Pohled do nitra mikroprocesoru

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

a operačních systémů

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

Architektury počítačů a procesorů

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

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

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

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

ISU Cvičení 3. Marta Čudová

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

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Profilová část maturitní zkoušky 2015/2016

Procesor. Procesor FPU ALU. Řadič mikrokód

Jazyk symbolických adres

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

Sběrnicová architektura POT POT. Jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenáší data oběma směry.

Profilová část maturitní zkoušky 2014/2015

Y36SAP

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

Provádění instrukcí. procesorem. Základní model

ISU Cvičení 7. Marta Čudová


Opakování programování

Architektura počítače

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

x86 assembler and inline assembler in GCC

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce

CHARAKTERISTIKA PROCESORU PENTIUM První verze:

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Adresní mody procesoru

Architektura počítačů. Instrukce a návrh instrukční sady. Lubomír Bulej KDSS MFF UK

Architektura počítačů Logické obvody

Základní uspořádání pamětí MCU

Algoritmizace a programování

Algoritmizace a programování

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

A51 MACRO ASSEMBLER POKUSNY PROGRAM DATE 10/3/007 PAGE 1

Architektura počítačových systémů

Simulátory aplikačně specifických instrukčních procesorů Jazyk LISA. Masařík Karel

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Architektura počítačů Logické obvody

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

Mikrořadiče řady 8051.

Programátorský model procesoru x51

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

Principy komunikace s adaptéry periferních zařízení (PZ)

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

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

Paměti a jejich organizace

Registry 8*32bit ERn (=16*16bit En+Rn, 8*16bit+16*8bit En+RnH+RnL)

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

Lojza - návrh a realizace µprocesoru

Architektura počítačů Implementace procesoru

Čísla, reprezentace, zjednodušené výpočty

Y36SAP - aritmetika. Osnova

Úvod do programovacích jazyků (Java)

Jak do počítače. aneb. Co je vlastně uvnitř

Testování jednotky ALU a aplikace metody FMEA

Počítač jako prostředek řízení. Struktura a organizace počítače

2 Hardware a operační systémy

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

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

v aritmetické jednotce počíta

Jednočipové mikropočítače

Architektura počítačů

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

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

Architektura procesoru ARM

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systémová struktura počítače

Programovací jazyk Pascal

BI-JPO (Jednotky počítače) Cvičení

C2115 Praktický úvod do superpočítání

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

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

Architektura počítačů

Architekura mikroprocesoru AVR ATMega ( Pokročilé architektury počítačů )

Transkript:

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 počítače ISA Aplikace Úroveň abstrakce Nízká Operační systém Překladač Architektura souboru instrukcí Architektura procesoru I/O Systém Číslicový návrh VLSI obvodový návrh 2007-Kubátová Y36SAP-strojový kód 2 Y36SAP-8 1

Instrukční soubor kritický interface software instruction set hardware 2007-Kubátová Y36SAP-strojový kód 3 Vytváření programů ve strojovém kódu 2007-Kubátová Y36SAP-strojový kód 4 Y36SAP-8 2

Vývoj softwaru úrovně abstrakce Vyšší programovací jazyk Překladač Jazyk symbolických instrukcí Asembler Strojový kód Procesor a = b+c If (a > MAX) a = MAX for (i==0; i<a; i++) mov reg1, konst[0] mov reg2, konst[2] add reg1, reg2 jc lab 0000 1111 0101 0111 1011 0001 1110 0011 1100 1000 1001 0110 Řídící signály 2007-Kubátová Y36SAP-strojový kód 5 ISA: Co musí být definováno? Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Synchron Interrupt? Formát a kódování instrukcí Jak se instrukce dekóduje? Umístění operandů a výsledku Kolik explicitních operandů je v instrukci pro ALU? Jak jsou operandy umístěny v paměti nebo jinde? Který operand může být v paměti? Typy dat a velikosti operandů Operace v ISA Které jsou podporovány? Výběr další instrukce Skoky, větvení programu, volání podprogramů fetch-decode-execute je implicitní! 2007-Kubátová Y36SAP-strojový kód 6 Y36SAP-8 3

Jednoduchý procesor von Neumannova typu CPU ALU CU Registry Paměť DB AB CB D7:D0 A7:A0 Sběrnice IF CPU musí obsahovat ALU, CU a registry pro dočasné uchování dat, instrukcí a pomocných proměnných CPU pro běh programu prochází základním cyklem počítače: 1. Instruction Fetch IF načtení instrukce 2. Instruction Decode ID dekódování instrukce 3. Operand Fetch OF načtení operandu(ů) 4. Instruction Execution IE vykonání instrukce 5. Write Back WB zapsání výsledku (také Result Store) 2007-Kubátová Y36SAP-strojový kód 7 ID OF IE WB Interrupt? Jaké instrukce??? bitový procesor Registry kolik, jakých, jak přístupných, PC, IR, PSW, adresace?, datové? Paměť?? 16 bitů adresuje 64 Kslov... slovo?? příznaky Z (Zero), S (Sign), C (Carry), O (Overflow) a další? instrukce v JSI: aritmetické ADD, SUB, AND, OR, XOR, NEG, NOT, MOV, CMP Přímý operand, nepřímý operand řídící JMP, JO, JNO, JS, JNS, JC, JNC, JZ, JNZ, JE, JNE, JG, JL, JGE, JLE, JA, JB, JAE, JBE uložení do paměti ST HALT, OUT, IND reprezentace hodnot přímý kód, doplňkový kód, nezáporná čísla syntaxe jazyka symbolických instrukcí 2007-Kubátová Y36SAP-strojový kód 8 Y36SAP-8 4

Návrh instrukcí procesoru ADOP jaké jak kódované jak dlouhé jaká adresace operandů kolik registrů 2007-Kubátová Y36SAP-strojový kód 9 Architektura ADOP Registry 16 registrů dostupných programátorovi: R0 R11 universálních (datových) registrů SP ukazatel zásobníku PC programový čítač PSW stavový registr, Příznaky Z zero, C carry, S sign, O overflow, ES extended sign (znaménko 2. operandu v binárních operacích) ZR obsahuje konstantní nulu Paměť big endian, kapacita 2 16 B 64KB 2007-Kubátová Y36SAP-strojový kód 10 Y36SAP-8 5

MOV kam, co Přesuny dat kam... registr co... registr (obsah registru), přímý operand 4, 8, 16 bitový, operand nepřímo adresovaný ST co, kam PUSH, POP 2007-Kubátová Y36SAP-strojový kód 11 Deklarace proměnných pseudoinstrukce vyhrazení místa v paměti (pro výsledek) data: zadání vstupních dat SHORT - jednobytový operand se znaménkem BYTE - jednobytový operand bez znaménka WORD - dvoubytový operand deklarace... DS, DB, DW 2007-Kubátová Y36SAP-strojový kód 12 Y36SAP-8 6

Aritmetické binární ADD ADC SUB SBB CMP unární NOT INC DEC 2007-Kubátová Y36SAP-strojový kód 13 CMP - porovnání jako SUB, ale neuloží výsledek, jen příznaky 2007-Kubátová Y36SAP-strojový kód 14 Y36SAP-8 7

Logické binární AND OR XOR unární NEG 2007-Kubátová Y36SAP-strojový kód 15 Posuvy SHL, SHR, ASR aritmetický posun vpravo, RRC, RLC 2007-Kubátová Y36SAP-strojový kód 16 Y36SAP-8 8

Skoky... nepodmíněný skok JMP label // label... návěští Př. MOV r0, 1 JMP label1 cosi: ADD r0, r5 label1: rrc r0 1 2-3 2007-Kubátová Y36SAP-strojový kód 17 Skoky... podmíněné skoky 2007-Kubátová Y36SAP-strojový kód 18 Y36SAP-8 9

Podmínky ve skocích Z, NZ, C, NC, S, NS O, NO, Složené podmínky se používají pro vyhodnocení porovnání (CMP) resp. odečtení dvou operandů a testují logický výrazy nad příznaky: GE (gretaer or equal)!sf &&!OF SF && OF (výraz je ekvivalentní s SF == OF) LT (less then) negace podmínky GE, GT (greater then) GE &&!Z LE (less or equal) negace podmínky GT, AT (above then) C &&!Z BE, (below equal) negace podmínky AT TRUE podmínka vždy splněna 2007-Kubátová Y36SAP-strojový kód 19 2007-Kubátová Y36SAP-strojový kód 20 Y36SAP-8 10

Příklad Napište program v JSI ADOP, který nalezne největší číslo v poli. 2007-Kubátová Y36SAP-strojový kód 21 // nalezení maximálního prvku v poli mov r0, 0x8000 // doposud max hodnota do R0 mov r2, pole // pointer na začátek pole do R2 rep: cmp r0, [r2] // porovnání dosavadní maximální hodnoty jge next mov r0, [r2] // nalezení nové maximální hodnoty next: add r2, 2 // přesun na další prvek v poli cmp r2, endpole // otestování zda je dosaženo konce pole jeq end // skok na konec jmp rep // opakování end: st r0, [max] // uložení výsledku halt max: dw 0 pole:dw 1, -13, 33, 0x7777 2007-Kubátová Y36SAP-strojový kód 22 endpole: Y36SAP-8 11

Simulátor http://service.felk.cvut.cz/jws/proc/procwww/ umožňuje psát programy v JSI, překládat, krokovat, spouštět a sledovat změny obsahu registrů a paměti 2007-Kubátová Y36SAP-strojový kód 23 LABORATOŘ - Mikropočítač AVR Produkt firmy Atmel, které mají na jednom čipu integrován procesor paměť programu paměť dat rozsáhlou sadu periferíí (vstupně-výstupní brány, čítače, časovače, převodníky, komunikační rozhraní apod.) 2007-Kubátová Y36SAP-strojový kód 24 Y36SAP-8 12

AVR Butterfly LCD displej - 6 alfanumerických znaků (po 14 segmentech) Joystick - 5 směrů (nahoru, dolů, doleva, doprava, kolmý stisk (enter)) Čidlo teploty Čidlo osvětlení Krystalový oscilátor 32,768 khz (pro měření času) Elektroakustický měnič (piezo) Napájení z baterie 2007-Kubátová Y36SAP-strojový kód 25 Architektura ATMEGA169 2007-Kubátová Y36SAP-strojový kód 26 Y36SAP-8 13

ATMEGA169 Univerzální registry - 32 osmibitových registrů (R0 až R31) Posledních šest z nich tvoří po dvojicích tři indexregistry (Slouží k adresování přístupu do paměti) Speciální registry Programový čítač - 16bitový (Program Counter - PC) Ukazatel na vrchol zásobníku - 16bitový (Stack Pointer - SP) Registr příznaků - 8bitový (Status Register - SREG) Paměť dat: 1 KB, organizace 1K x 8 bitů, čtení i zápis Paměť programu: 16KB, organizace 8K x 16 bitů, pouze čtení (zápis speciálním způsobem) Periferie např. řadič displeje (LCD) Vnitřní zdroj hodinového kmitočtu 2007-Kubátová Y36SAP-strojový kód 27 Registry 2007-Kubátová Y36SAP-strojový kód 28 Y36SAP-8 14

Stavový registr SREG ( flagy ) 2007-Kubátová Y36SAP-strojový kód 29 Skoky Nepodmíněný skok JMP Podmíněné skoky BRxx (BR namísto J) změna běhu programu bez zapamatování místa odkud se skákalo Na rozdíl od podprogramu, kdy je třeba si zapamatovat, kam se vrátit. 2007-Kubátová Y36SAP-strojový kód 30 Y36SAP-8 15

Podobně BRBS 2007-Kubátová Y36SAP-strojový kód 31 Další podmíněné skoky BRCS BRCC... S set, C clear Syntax: BRCS k BREQ... Z=1, BRNE... Z=0, BRGE... N xor V = 0... Procesor umí nastavit či vynulovat příznaky v SREG 2007-Kubátová Y36SAP-strojový kód 32 Y36SAP-8 16

Podprogramy Volání... CALL k k je adresa post-dekrementace Návrat z podprogramu... RET Při volání se ukládá návratová adresa na zásobník, Při návratu se obnovuje původní obsah PC ze zás. pre-inkrementace 2007-Kubátová Y36SAP-strojový kód 33 Zásobník - stack Operace: PUSH Rr... uložení registru na zásobník Rr STACK POP Rd... nahrání registru ze zásobníku Rd STACK 2007-Kubátová Y36SAP-strojový kód 34 Y36SAP-8 17

Zásobník... Zásobník roste směrem k nižším adresám Obsah SP registru ukazuje na vrchol zásobníku na první prázdnou položku, na kterou se bude zapisovat např. instrukcí PUSH Je simulován v hlavní paměti 2007-Kubátová Y36SAP-strojový kód 35... zásobník 000 8 bitů data data 3FF 2007-Kubátová Y36SAP-strojový kód 36 Y36SAP-8 18

Přesuny dat MOV... Přesun dat mezi registry LD, LDS... Přesun dat z paměti do registru LDI... Nahrání konstanty do registru ST... Přesun dat z registru do paměti Poznámka: LD a ST používá nepřímou adresaci 2007-Kubátová Y36SAP-strojový kód 37 Posuvy LSL, LSR posuvy logické (SHIFT) ROL, ROR rotace přes Carry ASR aritmetický posuv vpravo (? Vlevo?)... A řada dalších instrukcí, viz web SAP 2007-Kubátová Y36SAP-strojový kód 38 Y36SAP-8 19