Struktura a architektura počítačů

Podobné dokumenty
MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systém přerušení. České vysoké učení technické Fakulta elektrotechnická

Struktura a architektura počítačů

Algoritmizace a programování

Struktura a architektura počítačů

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

ŘÍZENÍ ELEKTRICKÝCH POHONŮ. Systémová struktura počítače Řízení běhu programu. České vysoké učení technické Fakulta elektrotechnická

Systém přerušení. Algoritmizace a programování. Struktura počítače - pokračování. Systémová struktura počítače pokrač.

Popis instrukční sady - procesory PIC Aritmetické a logické operace

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Stručný úvod do programování v jazyce C 2.díl. České vysoké učení technické Fakulta elektrotechnická

Struktura a architektura počítačů

Procesor z pohledu programátora


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

Popis instrukční sady procesoru ADOP

Jednočipové mikropočítače (mikrokontroléry)

Struktura a architektura počítačů


MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

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

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

a operačních systémů

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

Architektura jednočipových mikropočítačů PIC 16F84 a PIC 16F877. Tato prezentace vznikla jako součást řešení projektu FRVŠ 2008/566.

Kubatova Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR Kubátová Y36SAP-strojový kód 1

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

Algoritmizace a programování

Programování PICAXE18M2 v Assembleru

Mikrořadiče řady 8051.

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

RISC a CISC architektura

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

Vstup-výstup Input-Output Přehled a obsluha

Základy digitální techniky

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

Algoritmizace a programování

6. Členění počítačového hardware Architektura procesoru, Paměťová hierarchie, Systémová rozhranní, Uživatelská rozhraní

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

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

IMTEE Přednáška č. 8. interrupt vector table CPU při vzniku přerušení skáče na pevně dané místo v paměti (obvykle začátek CODE seg.

Mikrořadiče. Ing. Jaroslav Bernkopf

IMTEE Přednáška č. 11

Mikrokontroléry PIC a vestavěné systémy. PIC18 použití assembleru a jazyka C

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

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

Microchip. PICmicro Microcontrollers

Přerušení POT POT. Přerušovací systém. Přerušovací systém. skok do obslužného programu. vykonávaný program. asynchronní událost. obslužný.

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

Opakování programování

x86 assembler and inline assembler in GCC

ISU Cvičení 3. Marta Čudová

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

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

Adresní mody procesoru

MIKROKONTROLERY PIC16F84

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

Princip funkce počítače

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

Struktura a architektura počítačů

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


ISU Cvičení 7. Marta Čudová

dspic33: Přerušení, čítače a Change Notification

Jednočipové mikropočítače

Procesory z řady 8051

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

Monolitické mikropoèítaèe II

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

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

Architektura počítače Základní bloky Provádění instrukcí

Organizace pam ového prostoru 1

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

Jazyk symbolických adres

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

MIKROPOČÍTAČOVÉ SYSTÉMY

Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3

Osmibitové mikrořadiče Microchip PIC16F1937

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

Pohled do nitra mikroprocesoru Josef Horálek

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

Metody připojování periferií

Programátorský model procesoru x51


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

3. Počítačové systémy

Architektury počítačů a procesorů

Obr. 1 - Hlavní okno prostředí MPLAB

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

zení Koncepce připojení V/V zařízení POT POT ... V/V zařízení jsou připojena na sběrnici pomocí řadičů. Řadiče Připojení periferních zařízení

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

Ústav radioelektroniky. 18. prosince 2007

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

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

Architektura počítače

Osmibitové mikrořadiče Microchip PIC16F887

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

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

Lojza - návrh a realizace µprocesoru

Operační systémy. Přednáška 8: Správa paměti II

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

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.

Transkript:

Struktura a architektura počítačů Systémová struktura počítače Programátorský model počítače Instrukční soubor I České vysoké učení technické Fakulta elektrotechnická Ver.1.20 J. Zděnek 2014

Programátorský model počítače Kontrolní seznam 1 Check list No.1 Programátorský model ALU aritmetická jednotka PC čítač instrukcí SP ukazatel zásobníku PSW stavové slovo procesoru Střadač Adresový prostor univ. registrů Adr. prostor paměti programu Adresový prostor paměti dat Adresový prostor zásobníku Adr. prostor vstupů/výstupů Umístění tabulky vekt.přerušení Mapování v/v do paměti Programmer s model ALU arithmetic logic unit PC program counter SP stack pointer PSW processor status word Accumulator Universal register addr. space Program memory addr. space Data memory addr. space Stack addr. space Input/output space Interrupt vector table space Memory mapped input/output A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 2

Programátorský model počítače ACCUMULATOR PC PROGRAM COUNTER ALU UNIVERSAL (SCRATCHPAD, GENERAL PURPOSE REGISTERS) REGISTER SPACE SP FLAGS STACK POINTER PROCESSOR STATUS WORD (PSW) DATA PATH WIDTH (, 16, 32, 64 bits) RESET PROGRAM MEMORY SPACE??? DATA MEMORY SPACE MEMORY MAPPED I/O INPUT/OUTPUT SPACE (SPECIAL FUNCTION REGISTERS)?????? INTERRUPT VECTOR TABLE STACK??? HW STACK (CPU) STACK LIMITED DEPTH A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 3

Oddělený prostor vstupů a výstupů RESET PROGRAM MEMORY SPACE DATA MEMORY SPACE INPUT/OUTPUT SPACE (SPECIAL FUNCTION REGISTERS - SFR) INTERRUPT VECTOR TABLE STACK A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 4

Mapování prostoru vstupů/výstupů do paměti RESET PROGRAM MEMORY SPACE DATA MEMORY SPACE INTERRUPT VECTOR TABLE STACK (SPECIAL FUNCTION REGISTERS - SFR) MEMORY MAPPED I/O A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 5

Hardwareový zásobník (v CPU) ACCUMULATOR PC PROGRAM COUNTER ALU UNIVERSAL (SCRATCHPAD, GENERAL PURPOSE REGISTERS) REGISTER SPACE SP FLAGS STACK POINTER PROCESSOR STATUS WORD (PSW) DATA PATH WIDTH (, 16, 32, 64 bits) RESET PROGRAM MEMORY SPACE DATA MEMORY SPACE HW STACK (CPU) STACK LIMITED DEPTH INTERRUPT VECTOR TABLE MEMORY MAPPED I/O SFR SPECIAL FUNCTION REGISTERS A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 6

Adresové módy (způsoby adresování operandů) Kontrolní seznam 2 Check list No. 2 Adresové módy Paměť dat Paměť programu Přímá adresa Nepřímá adresa Ukazatel do paměti Indexové adresování Bázová adresa + index Adresování pomocí bank Přemapování paměti Přístupová banka Skrytý paměťový prostor Addressing modes Data memory Program memory Direct address Indirect address Memory pointer Indexed addressing Base address + index Memory banking Remapping Access bank Hidden memory space A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 7

Přímá adresa (adresa součástí instrukce) 000h DATA MEMORY INSTRUCTION OPCODE DIRECT ADDRESS SPECIAL FUNCTION REGISTERS MEMORY MAPPED INPUT/OUTPUT SPACE FFFh A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I

Nepřímá adresa (adresa je v registru) INDIRECT ADDRESS DATA MEMORY POINTER 000h DATA MEMORY FSRx REGISTER ADDRESS SPECIAL FUNCTION REGISTERS MEMORY MAPPED INPUT/OUTPUT SPACE FFFh A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 9

Indexové adresování INDEXED ADDRESSING (BASE + INDEX) 000h DATA MEMORY 00h BSR 4 BANK 0 05Fh 060h ADDRESS CALCULATION BSR BANK ADDRESS + 00h + SHORT ADDRESS = DATA MEMORY ADDRESS BANK 1 BANK 14 0FFh 100h EFFh F00h FFh 00h FFh 00h SHORT ADDRESS INSIDE EACH BANK 00h-FFh BANK 15 F5Fh F60h WREG STATUS 5Fh 60h SFR SPECIAL FUNCTION REGISTERS MEMORY MAPPED INPUT/OUTPUT SPACE BANKING FFFh FFh A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 10

Dynamické přemapování a přímá adresa REMAPPING & SHORT DIRECT ADDRESS 000h DATA MEMORY 00h BANK 0 05Fh 060h 5Fh 60h 0FFh 100h FFh 00h GPR ACCESS BANK 00h DISABLED (HIDDEN) BANK 1 BANK 14 EFFh F00h FFh 00h SFR WREG STATUS 5Fh 60h FFh BANK 15 F5Fh F60h WREG STATUS 5Fh 60h SPECIAL FUNCTION REGISTERS MEMORY MAPPED INPUT/OUTPUT SPACE FFFh FFh REMAPPING A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 11

Struktura CPU versus operandy Kontrolní seznam 3 Check list No. 3 Struktura CPU versus operandy Orientovaný na zásobník ALU, PSW (Příznakový reg) zásobník Střadačově orientovaný ALU, PSW (Příznakový reg) Paměť dat Registrově orientovaný ALU, PSW (Příznakový reg) univerzální registry (v CPU) Paměťově orientovaný ALU, PSW, paměť dat CPU systems versus operands Stack oriented ALU, PSW (Flags) stack Accumulator oriented ALU, PSW (Flags), Accumulator Data memory Register oriented ALU,PSW (Flags) Universal (scratchpad) registers Memory oriented ALU, PSW (Flags), data memory A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 12

Struktura CPU versus operandy - 1 STACK TOS ALU FLAGS STATUS STACK ORIENTED CPU A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 13

Struktura CPU versus operandy - 2 DATA MEMORY ALU FLAGS STATUS ACCUMULATOR ACCUMULATOR ORIENTED CPU A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 14

Struktura CPU versus operandy - 3 REGISTERS (INSIDE CPU) ALU FLAGS STATUS REGISTER ORIENTED CPU A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 15

Struktura CPU versus operandy - 4 DATA MEMORY ALU FLAGS STATUS MEMORY ORIENTED CPU A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 16

Organizace počítače pic1f (paměť programu) Kontrolní seznam 4 Check list No. 4 Struktura počítače pic1f Pamět programu Čítač instrukcí (PC) Zásobník (hardwareový) Ukazatel zásobníku (SP) Registry vrcholu zásobníku Start po nulování (RESET) Tabulka vektorů přerušení Nižší priorita přerušení (adr.) Vyšší priorita přerušení (adr.) Adresový prostor paměti prog. Obsazený prostor paměti prog. Paměť FLASH pic1f computer structure Program memory Program counter (PC) Hardware stack Stack pointer (SP) Top of stactk (TOS) registers Reset vector Interrupt vector table Low priority vector (interrupt) High priority vector (interrupt) Program memory space Implemented prog. memory space FLASH memory A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 17

pic1f Family Program Memory PROGRAM COUNTER PROGRAM MEMORY SP STACK POINTER Top of Stack -TOS 5 PC STACK 1 31 01AF4h 21 21 000000h 00000h 00001h RESET HIGH PRIORITY LOW PRIORITY RESET VECTOR HIGH PRIORITY INTERRUPT VECTOR LOW PRIORITY INTERRUPT VECTOR INTERRUPT VECTOR TABLE TOS REGISTERS TOSU 01h TOSH Ah TOSL F4h TABLE READ IMPLEMENTED MEMORY (FLASH) 01FFFh 01FFFFh CONFIG. WORDs PROGRAM MEMORY ADDRESS SPACE Read as 0 1FFFFFh 16 A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 1

Organizace počítače pic1f (paměť dat) Kontrolní seznam 5 Check list No. 5 Struktura počítače pic1f Pamět dat Universální registry (GPR) Ovládací registry periferií (SFR) Adresa paměti programu Registry nepřímé adresy (FSRx)) Adresování pomocí bank Bázový registr banky (BSR) Přemapování paměti Adresa uvnitř zvolené banky Adresa banky (0,1,,15) Stavové slovo procesoru (PSW) Střadač (WREG) pic1f computer structure Data memory General purpose registers (GPR) Special function registers (SFR) Register file address File select registers (FSRx) Banking Bank select register (BSR) Remapping Inner bank address Bank address (0,1,,15) Status (FLAGs, PSW) Working register (accumulator) A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 19

pic1f Family Data Memory BSR BANK ADDRESS 000h DATA MEMORY 00h ALU FSR0 4 BANK 0 05Fh 060h 5Fh 60h FSR1 FSR2 12 12 12 BANK 1 BANK 14 0FFh 100h EFFh F00h FFh 00h FFh 00h GPR ACCESS BANK WREG STATUS 00h 5Fh 60h FFh REGISTER FILE ADDRESS BANKING BANK 15 F5Fh F60h FFFh WREG STATUS 5Fh 60h FFh SFR ACCUMULATOR FLAGS (PSW) SPECIAL FUNCTION REGISTERS MEMORY MAPPED INPUT/OUTPUT SPACE REMAPING A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 20

pic1f Family Data Memory (Bank Addresses) FSR0 FSR1 BSR 4 12 BANK ADDRESS BANK 0 000h 05Fh 060h DATA MEMORY 00h 5Fh 60h ALU FSR2 12 12 0FFh 100h FFh 00h GPR ACCESS BANK 00h BANK 0 BANK 1 BANK 2 BANK 3 BANK 4 BANK 5 BANK 6 BANK 7 BANK BANK 9 BANK 10 BANK 11 BANK 12 BANK 13 BANK 14 BANK 15 FSR2 000h 100h 200h 300h 400h 500h 600h 700h 00h 900h A00h B00h C00h D00h E00h F00h BSR 0h 1h 2h 3h 4h 5h 6h 7h h 9h Ah Bh Ch Dh Eh Fh BANK 1 BANK 14 REGISTER FILE ADDRESS BANK 15 EFFh F00h F5Fh F60h FFFh WREG STATUS FFh 00h 5Fh 60h FFh SFR ACCUMULATOR FLAGS (PSW) WREG STATUS SPECIAL FUNCTION REGISTERS MEMORY MAPPED INPUT/OUTPUT SPACE - - - N OV Z DC C 5Fh 60h FFh A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 21

Organizace počítače pic1f (ALU, násobička) Kontrolní seznam 6 Check list No. 6 Struktura počítače pic1f Aritmetická a logická jednotka ALU (bitová) Násobička (x=16) Násobení bez znaménka Stavové slovo procesoru (PSW) Střadač (WREG) Registry součinu (PRODH,L) Universální registry (GPR) Ovládací registry periferií (SFR) Mapování v/v do paměti Operandy ALU z GPR i FSR pic1f computer structure Arithmetic and logic unit ALU (-bit) Multiplier (x=16) Unsigned multiplication Status (FLAGs, PSW) Working register (accumulator) Product register (PRODH,L) General purpose registers (GPR) Special function registers (SFR) Memory mapped input/output Orthogonal inst. set design A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 22

pic1f Family ALU and Multiplier ORTHOGONAL INSTRUCTION SET DESIGN SPECIAL FUNCTION REGISTERS (SFR) MEMORY MAPPED INPUT/OUTPUT SPACE DATA MEMORY/ REGISTER FILE GENERAL PURPOSE REGISTERS (GPR) WREG ALU ACCUMULATOR PRODH 16 MULTIPLIER (UNSIGNED) PRODL FLAGS STATUS ACCUMULATOR/REGISTER ORIENTED CPU A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 23

Organizace počítače pic1f systém přerušení Kontrolní seznam 7 Check list No. 7 Struktura počítače pic1f Systém přerušení Prioritní vs. neprioritní Dvouhladinový prioritní systém Zdroje přerušení Obslužná procedura přerušení Detektor událostí Inicializace systému přerušení Priorita přerušení Povolení přerušení Příznak žádosti o přerušení Obsluha přerušení Nulování žádostí o přerušení pic1f computer structure Interrupt system Priority vs. non-priority Two level priority system Interrupt resources Interrupt service routine (ISR) Event detector Interrupt system initialization Interrupt priority (IPEN, IPx) Interrupt enable (GIEH,GIEL,IEx) Interrupt flag (IFx) Interrupt service Interrupt flag (IFx) reset A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 24

pic1f Family Interrupt System High Priority Enable GIEH HIGH PRIORITY Priority Encoder INTRQ LOW PRIORITY xip yip GIEL IPEN xie yie Priority System On xif yif Low Priority Enable INPUT Event Detector........ Clk Timer Interrupt Priority INTERRUPT RESOURCES Interrupt Enable Interrupt Flag (Request) A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 25

Instrukční soubor počítače pic1f rozdělení Kontrolní seznam Check list No. Instrukční soubor počítače pic1f Pevná řádová čárka Přesuny operandů Aritmetické operace Posuny a rotace Logické operace Bitové operace Nepodmíněné skoky Absolutní, relativní Podmíněné skoky Volání podprogramu a návrat Řídící instrukce pic1f instruction set Fixed point Move operations Arithmetic operations Shift, Rotate operations Logical operations Bit operations Goto, Branch Direct, relative Conditional Branch Call, Return Control instructions A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 26

Přesuny Přesuny operandů paměť dat MOVxy - přesuň LFSR - nastav SWAP - zaměň půlslabiky (nibble) CLR - nuluj SET - nastav na FFh POP - vyzvedni položku z vrcholu zásobníku PUSH - ulož položku na vrchol zásobníku Přesuny operandů paměť programu TBLRD - table read (z FLASH) TBLWR - table write (do FLASH) A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 27

Aritmetické operace Aritmetické operace ADDxy - sečti ADDxyC - sečti včetně carry SUBxy - odečti SUBxyB - odečti včetně borrow MULxy - násob INCx - inkrementuj DECx - dekrementuj NEG - x = -x (dvojkový doplněk) DA - dekadická korekce CP - porovnej (komparuj)(odčítání bez uložení výsledku) TST - testuj A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 2

Posuny a rotace Posuny a rotace Rotace (Rotation) RLNC - rotuj vlevo bez carry (C) RLC - rotuj vlevo přes carry (C) RRNC - rotuj vpravo bez carry (C) RRC - rotuj vpravo přes carry (C) Posuny (Shifts) Posun vlevo (logický je shodný s aritmetickým) C=0 pak RLC Posun vpravo logický C=0 pak RRC Posun vpravo aritmetický Nejvyšší bit do C pak RRNC A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 29

Logické operace Logické operace (Logical Operations) ANDxy - AND IORxy - OR (inclusive or, nevýhradní nebo) XORxy - XOR (exclusive or, výhradní nebo) COM - x = NOT x A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 30

Bitové operace Bitové operace (Bit-oriented Operations) BCx - nuluj bit BSx - nastav bit BTxSC - testuj bit (skip if clear) BTxSS - testuj bit (skip if set) BTG - otoč bit (bit toggle) A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 31

Skoky (větvení programu bez uložení návratové adresy) Nepodmíněné skoky (Unconditional Jump) GOTO - přejdi na (absolutní adresa), celý prostor pam.prog. BRA - přejdi na (relativní adresa -1024, +1023) Podmíněné skoky (Conditional Jump)(relativní adresa -12, +127) Testují bity stavového slova (C, N, Z, OV) BC - Branch if Carry (C=1) BNC - Branch if Not Carry (C=0) BN - Branch if Negative (N=1) BNN - Branch if Not Negative (N=0) BZ - Branch if Zero (Z=1) (výsledek je 0) BNZ - Branch if Not Zero (Z=0) (výsledek není 0) BOV - Branch if Overflow (OV=1) BNOV - Branch if Not Overflow (OV=0) A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 32

Volání podprogramu a návrat z podprogramu Volání podprogramu (Procedure Call) CALL - absolutní adresa, cellý prostor paměti programu RCALL - relativní adresa, -1024, +1023 Návrah z podprogramu (Return from Procedure) RETLW - návrat z procedur, hodnota ve WREG RETURN - návrat z podprogramu RETFIE - návrat z ISR, povolí přerušení od dané hladiny A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 33

Řídící instrukce Control instructions NOP - prázdná operace (No Operation) RESET - programové nulování procesoru CLRWDT - nulování hlídacího časovače (Watchdog) SLEEP - přechod do módu se sníženou spotřebou A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 34

pic1f Family Program Memory PROGRAM COUNTER PROGRAM MEMORY SP STACK POINTER Top of Stack -TOS 5 PC STACK 1 31 01AF4h 21 21 000000h 00000h 00001h RESET HIGH PRIORITY LOW PRIORITY RESET VECTOR HIGH PRIORITY INTERRUPT VECTOR LOW PRIORITY INTERRUPT VECTOR INTERRUPT VECTOR TABLE TOS REGISTERS TOSU 01h TOSH Ah TOSL F4h TABLE READ IMPLEMENTED MEMORY (FLASH) 01FFFh 01FFFFh CONFIG. WORDs PROGRAM MEMORY ADDRESS SPACE Read as 0 1FFFFFh 16 A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 35

pic1f Family Program Memory Direct Address REMAPPING & SHORT DIRECT ADDRESS 000h DATA MEMORY 00h BANK 0 05Fh 060h 5Fh 60h 0FFh 100h FFh 00h GPR ACCESS BANK 00h DISABLED (HIDDEN) BANK 1 BANK 14 EFFh F00h FFh 00h SFR WREG STATUS 5Fh 60h FFh BANK 15 F5Fh F60h WREG STATUS 5Fh 60h SPECIAL FUNCTION REGISTERS MEMORY MAPPED INPUT/OUTPUT SPACE FFFh FFh REMAPPING A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 36

Příklad program v ASM PIC1F - 1 #include <P1F7J11.INC> ; processor specific variable definitions CONFIG FOSC = HS ; High speed oscilator CONFIG WDTEN = OFF ; Watchdog disabled CONFIG XINST = OFF ; Istruction set extension disabled #define TIMER0_16bit b'00000010 UDATA_ACS ; variable declaration part WREG_TEMP res 1 ; variable used for context saving STATUS_TEMP res 1 ; variable used for context saving BSR_TEMP res 1 ; variable used for context saving REG res 1 TEMP res 1 DIREKTIVY INSTRUKCE PROMĚNNÉ KONSTANTY KOMENTÁŘ CODE ORG 0x00000 goto Main ORG 0x0000 goto HighInt ; program code part ; go to start of main code ; go to high priority interrupt routine A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 37

Příklad program v ASM PIC1F - 2 Main: movlw 0x00 ; store 0 to W movwf TRISD ; W -> TRISD - all bits of PORTD are outputs movwf TRISB ; W -> TRISB - all bits of PORTB are outputs movwf PORTD ; W -> PORTD - PORTD value is 0 movwf REG ; W -> REG - REG value is O bsf TRISB,0,0 ; bit 0 of PORTB set as input movlw b'00000010' ; 0x02 -> W movwf T0CON ; Timer0 off, configured as 16 bit counter; movlw 0A0h ; 10100000b, 0A0h -> W movwf INTCON ; INTCON configured as - Interrupts enabled movlw 04h ; 00000100b, 04h -> W movwf INTCON2 ; Timer0 overflow int. priority set to High movlw b'10000000' ; 10000000b, 00h -> W movwf RCON ; enables priority levels on interrupts bsf T0CON,7,0 ; start Timer0 Loop: goto Loop ;loop forever (background program level) A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 3

Příklad program v ASM PIC1F - 3 HighInt: ; ISR start (Interrupt Service Routine) ; Save context and clear interrupt flag movff STATUS,STATUS_TEMP ; save STATUS register movff WREG,WREG_TEMP ; save working register movff BSR,BSR_TEMP ; save BSR register bcf INTCON,2,0 ; clear Interrupt Flag ; Interrupt service action rlncf REG,1,0 ; rotation to left btfss PORTB,0,0 ; is RB0 pressed? bsf REG,0,0 ; set bit 0 of REG to 1 movff REG,PORTD ; REG -> PORTD ; Restore context movff BSR_TEMP,BSR ; restore BSR register movff WREG_TEMP,WREG ; restore working register movff STATUS_TEMP,STATUS ; restore STATUS register ; Return from ISR (Note: special instruction retfie to be interrupt reenabled retfie ; return from interrupt END A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 39

Struktura a architektura počítačů Systémová struktura počítače Programátorský model počítače Instrukční soubor I KONEC České vysoké učení technické Fakulta elektrotechnická A7B14SAP Struktura a architektura počítačů 7 - Programátorský model, instrukční soubor I 40