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:http://www.rabaka.net/ZMT.

Slides:



Advertisements
Podobné prezentace
Základy ukládání dat v počítači
Advertisements

Rozdělení registrů.
Zásobník (LiFo) Fronta (FiFo)
SYSTÉM PŘERUŠENÍ U 68HC11.
Programování v Pascalu Přednáška 3
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
Tato prezentace byla vytvořena
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.
Operátory (1. část) 3 A1PRG - Programování – Seminář
Tato prezentace byla vytvořena
Instrukční soubor PIC16Fxxx osnova: Charakteristika instrukčního souboru Rozdělení instrukcí Časové průběhy (zpracování instrukcí)
Výukový program: Mechanik - elektrotechnik Název programu: Číslicová technika - mikroprocesory III. ročník Mikrořadiče Vypracoval : Vlastimil Vlček Projekt.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace
ČÍSLICOVÁ TECHNIKA Aritmetické operace
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
AVR Assembler Symboly Návěští
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_02A13 Autor Ing. Jiří Kalousek Období vytvoření duben 2014.
PicoBlaze, MicroBlaze, PowerPC
Základy mikroprocesorové techniky
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Programování mikrokontrolerů PIC 16F84A
Tato prezentace byla vytvořena
Rozdělení registrů.
POUŽIVÁNÍ FUNKCÍ V EXCELU DOMÁCÍ ÚKOL - KURZ PRÁCE S POČÍTAČI „POKROČILÍ“ NA TÉMA FUNKCE V EXCELU Vypracoval: Petr Šimek
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.
Aritmetické operace ve dvojkové soustavě, šestnáctkový součet
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
Přehled registrů Střední odborná škola Otrokovice Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Miloš Zatloukal.
David Rozlílek Me4B. ? ? ? ?? Jaká paměť tvoří paměť programu ………… ? EA … kde je logická 1 a kde logická 0 ……….? ? ….. Kde je vnější a kde vnitřní paměť……….?
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Instrukce procesoru.
Orbis pictus 21. století Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky Blokové schéma počítače.
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.
John von Neumannova koncepce. John von Neumann  Narozen 28. prosince 1903 Budapešť Rakousko-Uhersko  Zemřel 8. února 1957 Spojené státy americké.
Základy programování mikropočítačů První program v jazyce symbolických adres.
Mikrokontrolery řady Tyto obvody představují vlastně velmi jednoduchý, ale kompletní mikropočitačový systém. Ustálil se pro ně název jednočipové.
Orbis pictus 21. století Instrukční soubor 2
Vývoj architektur mikroprocesorů Od 4 bitů k superskalárnímu RISC Vývoj architektur mikroprocesorů Od 4 bitů k superskalárnímu RISC Pavel Píša
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.
MIKROPROCESOROVÁ TECHNIKA
Základy programování mikropočítačů
Výukový materiál zpracován v rámci projektu
Cvičení s mikrokontrolery 8051
ALU Aritmeticko-logická jednotka
Aritmetickologická jednotka
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Jednočipové počítače – instrukční sada
Číslicová technika.
Výukový materiál zpracován v rámci projektu
Název projektu: Moderní výuka s využitím ICT
Mikropočítač Soubor instrukcí
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
jednočipových počítačů II
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Aritmetické operace s binárními čísly
Výukový materiál zpracován v rámci projektu
jednočipových počítačů I
Bloková schéma procesora
Programování mikrokontrolerů PIC 16F84A
Transkript prezentace:

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:

Typy operandů A – střadač C – příznak přenosu ve stavovém slově (PSW) DPTR – SFR registr používaný pro nepřímé adresování Rx – registr R0  – nepřímá adresa v R0 resp. R1 – obsah registru určuje adresu místa, s jehož obsahem se bude pracovat a8, a11, a16 – přímá adresa (8, 11 resp. 16-ti bitová) #d8, #d16 – přímá data (8 resp. 16-ti bitová) r8 – relativní adresa b8 – bitová adresa /b8 – negovaná hodnota bitu b8

Instrukce přesunů MOV – Move Memory MOVC – Move Code Memory MOVX – Move Extended Memory PUSH – Push Value Onto Stack POP – Pop Value From Stack XCH – Exchange bytes XCHD – Exchange digits

Instrukce přesunů MOV –Přesune bajt ze zdrojového umístění (src) do cílového umístění (dst) –Syntaxe:MOVdst, src A Rx DPTR C b8

Instrukce přesunů MOVC –Přesune bajt z programové paměti do střadače. Adresa místa, jehož obsah se přesouvá, získáme jako 16-ti bitový součet obsahu střadače (8 bitů) a ukazatele dat DPTR nebo čítače instrukcí PC. V případě čítače instrukcí do výpočtu vstupuje již adresa odpovídající následující instrukci. MOVX –Přesune byte z/do střadače do/z vnější paměti dat. Instrukce mohou využívat 16-ti nebo 8-mi bitovou nepřímou adresu. V prvním případě se vysílá adresa uložená v DPTR na bránu P2 (DPH) a bránu P0 (DPL). V druhém případě se vysílá na bránu P0 adresa uložená v registru R0 nebo R1 a na bráně P2 zůstává hodnota naposledy zapsaná. A A

Instrukce přesunů PUSH –Přičte jedničku k ukazateli zásobníku a potom uloží obsah adresovaného místa na vrcholu zásobníku (zásobník je vždy ve vnitřní datové paměti). –Syntaxe:PUSHa8 POP –Vyzvedne obsah vrcholu zásobníku a uloží jej na adresované paměťové místo. Pak odečte od ukazatele zásobníku jedničku. –Syntaxe:POPa8 XCH –Vymění (navzájem prohodí) obsah střadače a určeného registru nebo adresovaného paměťového místa. –Syntaxe:XCHA, Rx XCHA, a8 XCHD –Vymění (navzájem prohodí) obsah nižšího „půlbajtu“ střadače s nepřímo adresovaným paměťovým místem vnitřní paměti RAM.

Aritmetické operace INC – Increment Register DEC – Decrement Register ADD (ADDC) – Add Accumulator (With Carry) SUBB – Subtract From Accumulator With Borrow MUL – Multiply Accumulator by B DIV – Divide Accumulator by B DA – Decimal Adjust

Aritmetické operace INC –Přičte k obsahu adresovaného paměťového místa jedničku. –Syntaxe:INCA INCRx INCa8 INCDPTR DEC –Odečte jedničku od obsahu adresovaného paměťového místa. –Syntaxe:DECA DECRx DECa8

Aritmetické operace ADD, ADDC –Přičte ke střadači obsah adresovaného bytu. ADDC navíc přičítá ještě příznak přetečení (Carry). –Syntaxe:ADDA, RxADDCA, ADDA, a8ADDCA, a8 ADDA, #d8ADDCA, #d8 SUBB –Odečte od střadače obsah adresovaného bytu včetně příznaku přenosu (Borrow = Carry). –Syntaxe:SUBBA, Rx SUBBA, a8 SUBBA, #d8

Aritmetické operace MUL –Vynásobí dvě osmibitová čísla bez znaménka uložená ve střadači a registru B. Po operaci se do A uloží nižší byte výsledku, do B vyšší byte výsledku. –Syntaxe:MULAB DIV –Celočíselně vydělí obsah střadače obsahem registru B. Celá část podílu se uloží do střadači, zbytek (nikoliv desetinná část) zůstává v registru B. –Syntaxe:DIVAB DA –Koriguje obsah střadače po binárním sčítání dvou dekadických čísel vyjádřených v BCD kódu tak, aby výsledek opět tvořil dvě čtyřbitová BCD čísla. Je-li hodnota na nižších čtyřech bytech >9 nebo AC=1, potom se ke střadači přičte hodnota 6. Je-li hodnota na vyšších čtyřech bitech >9 nebo AC=1, potom se ke střadači přičte hodnota 60H. –Syntaxe:DAA

Logické operace ANL – Bitwise AND ORL – Bitwise OR XRL – Bitwise Exclusive OR CLR – Clear Register CPL – Complement Register

Logické operace ANL/ORL/XRL –Provede logický součin/součet/výlučný součet mezi odpovídajícími bity z cílového a zdrojového umístění a výsledek uloží do cílového umístění. –Syntaxe:ANLdst, src ORLdst, src XRLdst, src A a8 C

Logické operace CLR –Vynuluje obsah střadače resp. adresovaný bit. –Syntaxe:CLRA CLRC CLRb8 CPL –Neguje každý bit střadače resp. adresovaný bit. –Syntaxe:CPLA CPLC CPLb8

Instrukce posunů RL – Rotate Accumulator LeftSyntaxe: RL A RLC – Rotate Accumulator Left Throuht CarrySyntaxe: RLC A RR – Rotate Accumulator RightSyntaxe: RR A RRC – Rotate Accumulator Right Throuht CarrySyntaxe: RRC A SWAP – Swap Accumulator NibblesSyntaxe: SWAP A b7b6b5b4b3b2b1b0 b7b6b5b4b3b2b1b0C b7b6b5b4b3b2b1b0 b7b6b5b4b3b2b1b0C b7  b4b3  b0

Výhradně bitové operace SETB – Set Bit –Nastaví přímo adresovaný bit na log.1. –Syntaxe:SETBC SETBb8

Instrukce podmíněných skoků JC – Jump if Carry Set JNC – Jump if Carry Not Set JB – Jump if Bit Set JNB – Jump if Bit NotSet JBC – Jump if Bit Set And Clear Bit JZ – Jump if Accumulator Zero JNZ – Jump if Accumulator Not Zero CJNE – Compare and Jump if Not Equal DJNZ – Decrement Register and Jump if Not Zero

Instrukce podmíněných skoků JC/JNC –Testuje příznak přenosu (C) a v případě jeho nastavení (log. 1) resp. nulovosti (log. 0) provede skok na adresu, kterou vypočte jako součet čítače instrukcí a relativní adresy. –Syntaxe:JCr8JNCr8 JB/JNB –Testuje adresovaný bit a v případě jeho nastavení (log.1) resp. nulovosti (log. 0) provede skok na adresu, kterou vypočte jako součet čítače instrukcí a relativní adresy. –Syntaxe:JBr8JNBr8 JZ/JNZ –Testuje obsah střadače a v případě je nulovosti resp. nenulovosti provede skok na adresu, kterou vypočte jako součet hodnoty čítače instrukcí a relativní adresy. –Syntaxe:JZr8JNZr8

Instrukce podmíněných skoků CJNE –Porovná dva bajty z umístění daného prvními dvěma operandy. V případě jejich nerovnosti provede relativní skok. Adresa skoku se vypočte přičtením relativního posunu k čítači instrukcí. Pokud se cílový a zdrojový byte rovnají, program pokračuje vykonáváním další instrukce následující po instrukci CJNE. –Syntaxe:CJNEA, a8, r8 CJNEA, #d8, r8 CJNERx, #d8, r8 #d8, r8 DJNZ –Odečte od adresovaného paměťového místa jedničku a zjistí, zda je výsledek nulový. Je-li výsledek nenulový, provede skok na definovanou adresu. Je-li výsledek nulový, program pokračuje vykonáváním další instrukce následující po instrukci DJNZ. –Syntaxe:DJNZRx, r8 DJNZa8, r8

Instrukce skoků ACALL – Absolute CallSyntaxe:ACALLa11 LCALL – Long CallSyntaxe:LCALLa16 RET – Return From SubroutineSyntaxe:RET RETI – Return From InterruptSyntaxe:RETI AJMP – Absolute JumpSyntaxe:AJMPa11 LJMP – Long JumpSyntaxe:LJMPa16 SJMP – Short JumpSyntaxe:SJMPr8 JMP – Jump to

Příklad: blikání LEDkou $MOD52; use 8052 predefined symbols LEDEQUP3.4; P3.4 is red LED on eval board CSEG; MAIN PROGRAM ORG0000h ;============================================================================== BLINK:CPLLED; flash (complement) the red LED CALLDELAY; call software delay JMPBLINK; repeat indefinately ;============================================================================== DELAY:; delay 100ms MOVR7, #200; 200 * 500us = 100ms DLY1:MOVR6, #229; 229 * 2.17us = 500us DJNZR6, $; sit here for 500us DJNZ R7, DLY1; repeat 200 times (100ms delay) RET ;============================================================================== END