Zásobník (LiFo) Fronta (FiFo)

Slides:



Advertisements
Podobné prezentace
Mikroprocesory Procesory. Procesor je synchronní zařízení provádí operace s daty je programovatelný pomocí mikroinstrukcí je více rodin procesorů (jednočipy.
Advertisements

Komunikace periférii.
Posuvné registry.
Rozdělení registrů.
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
Instrukce procesoru pro skoky v programu (JMP, JZ, JNZ, JC, JNC)
Instrukce procesoru pro přesun (MOV) mov X, Y Instrukce kopíruje osmibitová data ze zdroje Y do cíle X mov A, R n mov A, DPH mov A, DPL mov A, SPH mov.
Otázky k absolutoriu HW 1 - 5
Principy překladačů Mezikód Jakub Yaghob.
Paměťové registry.
Generování mezikódu Jakub Yaghob
Principy překladačů Architektury procesorů Jakub Yaghob.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Základy mikroprocesorové techniky
Program Programátorský model procesoru Instrukční soubor
Základy mikroprocesorové techniky
TEP Instrukční soubor č.9.
Základy mikroprocesorové techniky 11. Týden – Instrukční sada ‘51 Garant:Prof. Zdeněk Bohuslávek, CSc. Přednášející:Ing. Jiří Nesládek Podklady:
TEP Způsoby adresace č.6. Způsoby adresace Téma Způsoby adresace TEP Předmět TEP Juránek Leoš Ing. Autor Juránek Leoš Ing. TEP.
Paměťové registry.
PicoBlaze, MicroBlaze, PowerPC
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Paměťové obvody a vývoj mikroprocesoru
Tato prezentace byla vytvořena
Kruhový registr. Kruhový registr zpracovává načtenou informaci do registru. Charakteristikou kruhového registru je, že se na rozdíl od předchozích typů.
Počítače a programování 1
Rozdělení registrů.
Kruhový registr.
Informatika / …o počítači (základní pojmy, jednoduché představy) 2006.
TEP Přerušení č.7. Přerušení Téma Přerušení TEP Předmět TEP Juránek Leoš Ing. Autor Juránek Leoš Ing. TEP.
Adresy a adresování Střední odborná škola Otrokovice Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Miloš Zatloukal.
Von Neumannovo schéma.
Jaroslav Krahula.  OSC - ? ROM - ? RAM - ? Č/Č - ? CPU - ? ŘS - ? SP - ? LPT -?
1. ELEKTRICKÝ SIGNÁL VSTUPUJE DO uPROCESORU 2.VYMAŽE DATA KTERÁ ZŮSTALA V REGISTRECH VNITŘNÍ PAMĚTI 3. NASTAVÍ REGISTR CPU – ČÍTAČ INSTRUKCÍ NA F000 ADRESA.
Přehled registrů Střední odborná škola Otrokovice Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Miloš Zatloukal.
Procesor Renesas H8S/2633F.
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
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é.
Instrukce procesoru.
Univerzální procesor. Jako vhodný procesor na místo virtuálního univerzálního mikroprocesoru (procesoru) byl pro výklad jako vhodný typ vybrán procesor.
Základy programování mikropočítačů První program v jazyce symbolických adres.
Překladače Operační paměť © Milan Keršláger
Instrukční soubor řady 8051 Assembler. Úvod Instrukční soubor má 111 instrukcí a to :  1bytových - 49  2bytových - 45  3bytových - 17 Soubor se rozděluje.
Odborný výcvik ve 3. tisíciletí Tato prezentace byla vytvořena v rámci projektu.
Odborný výcvik ve 3. tisíciletí Tato prezentace byla vytvořena v rámci projektu.
MIKROPROCESOROVÁ TECHNIKA
Výukový materiál zpracován v rámci projektu
Cvičení s mikrokontrolery 8051
Úvod do programování 11. hodina
Výukový materiál zpracován v rámci projektu
Jednočipové počítače – instrukční sada
1. ročník oboru Mechanik opravář motorových vozidel
Mikropočítač Soubor instrukcí
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Úvod do programování 11. hodina
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Dynamické proměnné (1) Proměnné, jejichž počet a (nebo) velikost pa-měti využívané těmito proměnnými se v prů-běhu programu mění Dynamické proměnné lze.
Výukový materiál zpracován v rámci projektu
jednočipových počítačů I
Segmentace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Bloková schéma procesora
přerušení (instrukční cyklus, obsluha) vztahy mezi tématy
Informatika / …o počítači
Přepínání procesů Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/
Transkript prezentace:

Zásobník (LiFo) Fronta (FiFo) Vkládaná položka Vyjímaná položka Vrchol zásobníku Dno zásobníku Fronta (FiFo) Vyjímaná položka Vkládaná položka Konec fronty Čelo fronty

Implementace zásobníku 16-ti bitový registr SP (Stack Pointer) obsahuje aktuální adresu vrcholu zásobníku Zásobník je umístěn v paměti Dno Pro práci se zásobníkem jsou speciální instrukce, které upravují hodnotu SP Nebývá účelné s oblastí zásobníku pracovat i jiným způsobem Vrchol SPH SPL Inicializací obsahu SP se zásobník umístí do paměti SP Další manipulace s SP nebývá účelná a může být nebezpečná Dno zásobníku má v paměti pevnou pozici Vrchol NE !

Instrukce procesoru pro práci se zásobníkem push X Instrukce zvýší obsah registru SP o jedna a uloží obsah operandu X do paměti, na adresu, která je hodnotou registru SP. push A push Rn push PSW pop X Instrukce zkopíruje byte z paměti na adrese, která je obsahem registru SP do operandu X, a sníží obsah registru SP o jedna. pop A pop Rn pop PSW

Podobně jako při skoku: voláním podprogramu se Podprogramy Podobně jako při skoku: voláním podprogramu se předává řízení instrukci na jiném místě v programu Na rozdíl od skoku: předpokládá se návrat do místa, odkud se řízení předávalo call Adresa16 call Instrukce uloží do zásobníku (jako push) nejprve nižší, pak vyšší byte adresy té instrukce, která následuje na za instrukcí call. Potom se provede skok na Adresa16. call ret Instrukce odebere ze zásobníku (jako pop) nejprve vyšší, pak nižší byte adresy instrukce, které předá řízení. ret

Každým zavoláním podprogramu se velikost zásobníku Podprogramy Každým zavoláním podprogramu se velikost zásobníku zvětší o dva Byty (uloží se návratová adresa) Každým návratem z podprogramu se velikost zásobníku zmenší o dva Byty (odebere se návratová adresa) call call ret call call ret ret Hlavní program Podprogram úroveň 1 Podprogram úroveň 2 Podprogram úroveň 3

Počet provedených instrukcí pop, by měl být Podprogramy Počet provedených instrukcí pop, by měl být stejný jako počet provedených instrukcí push Počet provedených instrukcí call, by měl být stejný jako počet provedených instrukci ret Uvnitř podprogramu nepoužívat instrukce skoku s cílem, mimo uvažovaný podprogram Vně podprogramu nepoužívat instrukce skoku s cílem uvnitř uvažovaného podprogramu

Příklady na podprogramy Př.: Pískání LOOP: mov A, #1 out 12, A mov R0, #0 djnz R0, $ mov A, #0 out 12, A mov R0, #0 djnz R0, $ jmp LOOP Př.: Pískání LOOP: mov A, #1 out 12, A call WAIT mov A, #0 out 12, A call WAIT jmp LOOP WAIT: mov R0, #0 djnz R0, $ ret

Příklady na podprogramy Př.: Blikání LOOP: mov A, #0 out 12, A mov R1, #0 W1: mov R0, #0 djnz R0, $ djnz R1, W1 mov A, #1 out 12, A W2: mov R0, #0 djnz R0, $ djnz R1, W2 jmp LOOP Př.: Blikání LOOP: mov A, #0 out 12, A call W mov A, #1 out 12, A jmp LOOP W: mov R1, #0 W1: mov R0, #0 djnz R0, $ djnz R1, W1 ret

Mikro- počítač a f b g e c h d Příklad podprogramu Př.: Podprogram-Displej DISPL: cjne R7, #0, D1 mov A, #00111111B jmp DISEND D1: cjne R7, #1, D2 mov A, #00000110B D2: cjne R7, #2, D3 mov A, #01011011B D3: cjne R7, #3, D4 mov A, #01001111B D4: cjne R7, #4, D5 mov A, #01100100B D5: cjne R7, #5, D6 mov A, #01101101B D6: cjne R7, #6, D7 mov A, #01111101B D7: cjne R7, #7, D8 mov A, #00000111B D8: cjne R7, #8, D9 mov A, #01111111B D9: cjne R7, #9, ERR mov A, #01101111B DISEND: out 12H, A ERR: ret Mikro- počítač a f b g e c h d P12.0 P12.1 P12.2 P12.3 P12.4 P12.4 P12.6 P12.7

Instrukce vstupu a výstupu Aritmetické instrukce Instrukční sada Instrukce přesunu dat mov X, Y Instrukce vstupu a výstupu in A, Adresa8 out Adresa8, A Logické instrukce cpl A anl A, X orl A, X xrl A, X Instrukce rotací rr A rrc A rl A rlc A Aritmetické instrukce inc X dec X add A, X addc A, X subb A, X Instrukce skoků jmp Adresa16 djnz Rn,Adresa16 cjne A,#data8,Adresa16 cjne Rn,#data8,Adresa16 jz Adresa16 jnz Adresa16 jc Adresa16 jnc Adresa16 Práce se zásobníkem push X pop X Podprogramy call Adresa16 ret Prázdná instrukce nop

Podnět pro přerušení přichází většinou z prostřední mimo procesor Podprogram pro obsluhu přerušení není spouštěn instrukcí call. Je aktivo- ván HW prostředky (řadič přerušení, procesor, …) Mikro- počítač Přeruší se právě vykonávaný program … … a začne se provádět připravený podprogram Při obsluze přerušení je ukládána do zásobníku návratová adresa, podprogram pro přerušení končí instrukcí ret. Po skončení podprogramu procesor pokračuje ve vykonávání přerušeného programu

Dokud je obsah proměnné na adrese 0AAh Příklad na přerušení Generátor Impulsů (0.01s) Mikro- počítač Přerušení Dokud je obsah proměnné na adrese 0AAh větší než 0, je periodicky v taktu 0.01s snižován o jedničku. Hlavní program a ostatní podprogramy mohou (ale nemusí) tuto funkci použít pro řešení úloh Časování. Př.: Přerušení 0.01s IntT1: push A mov A, 0AAh jz IT1 dec A mov 0AAh, A IT1_1: pop A ret Ve složitějších aplikacích je možno podobných ČASOVAČŮ zřídit mnoho (každý na jiné adrese).