UProcessorens hardware. 8080 Architecture Kernen i en processor er ALUen. Det er den som kan udfører simple regne operationer. De tal den arbejdermed.

Slides:



Advertisements
Lignende præsentationer
TEST 2 modul 1 20 spørgsmål. Du skal klikke med musen på det rigtige svar, så kommer du automatisk til næste spørgsmål Klik for start.
Advertisements

Grundlæggende IT Lektion 4 Sådan virker pc’en
Computerens anatomi! Hvad skal du vide før du køber din egen?
COMPUTERENS ANATOMI KENDER DU DIN COMPUTER SÅ GODT SOM DU TROR?
Pc-kørekort Sådan virker pc’en Keld Hinsch.
Symbolsk maskinsprog.
Oversættelse af Java-programmer JavaBytecode javac Normalt oversættes Java-programmer til bytecode, som fortolkes af en JVM (Java Virtual Machine). Java.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
W1b1 PC baseret analyse og simulering. w1b2 Definition Digital Elektronisk beregningsmaskine, der har intern hukommelse til lagring af program og mellem-regninger.
Computerens anatomi Dette er interaktivt så brug musen.
Process Control Hardware baggrund Process begrebet i et OS Process tilstande Context switching.
DComNet1 ISA-niveauet (2). dComNet2 Niveauer af virtuelle maskiner ISA niveauet / maskinkodeniveauet / maskinniveau.
GoMINIsite – og få en ny og bedre hjemmeside på minutter 0.
Skriv den gode tekst ”Det er ikke sin mor, man skriver til. Hvis læserens opmærksomhed ikke bliver fanget i de første fem linjer, når han aldrig den sjette.”
Programmering I Java/C# Datatekniker Dit første projekt.
PHP Intro Webintegrator PHP. PHP Baggrund PHP er et server-side programmeringssprog anvendt til udvikling af dynamiske webapplikationer og websteder.
1. klasse skriver fagbøger - eksempel på undervisningsforløb fra Hattingskolen 2007.
Port access  Indtil nu har vi anvendt færdige metoder til at tænde og slukke for LEDs, men den metode virker kun så længe vi arbejde med Keil boardet.
Lineære funktioner og udviklingsforløb. Tillægsspørgsmål  Tillægsspørgsmål 1: En særlig linje er tangenten. Redegør for hvordan man bestemmer tangentligningen.
Port access I det efterfølgende vil vi anvende databladsoplysninger frem for anvende de færdige metoder.
Stavekontrol i Word. Klik på fanen ”Filer”, Klik på ”Indstillinger” Klik på ”Korrektur”. Opsætning kan se således ud. Opsætning af stavekontrol i Word.
Inden vi kan gå i gang skal du have installeret Keil uVision Under installationen er det vigtigt at vælge den rigtige hardware. Vi arbeder med følgende.
TÆT PÅ DIG TÆT PÅ JOB.
Microsoft Access databaser.
Fordybelse i et projekt
Nu har du installeret uVision og set at både programmet og boardet virker. Man kan ikke lære at cykle ved at se på andre, så i det efterfølgende skal du.
Lyd data (audio data) (Side 4-6 i artiklen: 2. Repræsentation og manipulation af Data)
Nye e-beviser og uddannelsesplaner
Seminar, den 20. april 2017 Præsentation af Parasollens USB-Pind.
Anvendelse.
1587 Server - Blandet miljø Embedded I
Arbejdsmiljørundering /tjeklister
Embedded SW – C & picoBlaze
ADC (Analog/Digital converter) Bruges til at måle analoge spændinger på kontrollerens inputporte. På dit board sidder en drejeknap under displayet som.
I det efterfølgende vil vi prøve at opnå forbindelse til de knapper som er på boardet. Opgaven er at vi ved at trykke på knapperne kan få lyset til at.
Lav et nyt projekt og tilføj denne gang pakken Graphic LCD.
I det efterfølgende kommer nogle eksempler på C kode som adskiller sig fra det vi normalt anvender i C# Hvis du har behov for hurtigt at afprøve små stumper.
Quiz Uge 2 – mandag.
WebApi service x.
”Avanceret” Programmering
Administrationsmodulet
Interrupts. Indtil nu har hastigheden på dine blinkende LEDs været styret af et loop. Som du muligvis også har bemærket afhænger det meget af hvor travlt.
Det gode møde i folkeskolen
Hvad er det, og hvor bruges det?
Arduino antenne switch
1587 Server - Blandet miljø Datatekniker – Infra & Prog
I det efterfølgende kommer nogle eksempler på C kode som adskiller sig fra det vi normalt anvender i C# Hvis du har behov for hurtigt at afprøve små stumper.
IOT – Elkedel på internettet
Det man ikke ser har man ikke ondt af
Tag sikkerhedskopier Når uheldet er ude – enten fordi dine ting går i stykker, eller fordi du bliver offer for kriminalitet – er det godt at have sikret.
Tag sikkerhedskopier Når uheldet er ude – enten fordi dine ting går i stykker, eller fordi du bliver offer for kriminalitet – er det godt at have sikret.
Programmering.
Kode til Event på Kontrol
Quiz Uge 2 – mandag.
Quiz Uge 2 – mandag.
Præsentation af app til Stafet For Livet Formålet med Stafet For Livet Appen er, at skabe en app, der fungerer som en samlet indgang til stafetten for.
”Intro og Sådan bruger du musen”
Introduktion til arbejdet som klubsekretær
Robotterne kommer - Ozobotterne.
Velkommen Dette ansøgningsskema er første skridt mod en deltagelse i projektet “Øget Vækst gennem cirkulære forretningsmodeller I SMV’er”, eller “CØ SMV”.
Tråde & Executors – uge 2.
Tråde & Executors – uge 2.
Quiz Uge 2 – mandag.
Præsentationens transcript:

uProcessorens hardware

8080 Architecture Kernen i en processor er ALUen. Det er den som kan udfører simple regne operationer. De tal den arbejdermed gemmes i en række registre. Når et tal skal hentes eller gemmes i extern memory sker det vha adresse og data busserne. Den viste processor blev released i En 2MHz, 8 bits processor som max kan adresserer 64kB hukommelse. Ikke meget, men alligevel rigeligt til at styre en vaskemaskine, eller lignende.

Minimum system For at processoren kan arbejde skal der være noget ekstern hukommelse. I viste tilfælde har vi programhukommelse i ROM og arbejds hukommelse i RAM. ROM svarer til det i kender som BIOS fra jeres PCer.

Memorymap Når processoren skal læse eller skrive til hukommelsen er det de højeste bit i adressen som bestemmer hvilken kreds vi læser fra. Memorymappen viser hvilke dele af hukommelsen som ligger på de forskellige adresser. Her vist et system med 1 ROM og 3 RAM kredse hver på 16k byte. Det viste tilfælde dækker fra adresse 0000 til FFFF svarende til det som processoren kan adresseres med sine adresse 16 bit. Når RAM og ROM er på 16K betyder det at de har 14 adresseben hver. Det er derfor nødvendigt at lave et kredsløb som ud fra de to sidste holder styr på hvilken kreds der skal skrives til.

Kontakt til omverdenen Hvis processoren skal anvendes til at styrer noget elektronik eller andet, skal vi have en portkreds på. Eksemplet her viser en 8255 som har 3 bi-directionale porte hver på 8 bit. At porten er bi-directional betyder at den frit kan anvendes som input eller output. Porten har 2 adresseben (A0 og A1) hvilket giver 4 adresser. De tre laveste knyttes til hver sin port, medens den sidste forbindes til kontrol registeret. Ved at skrive til kontrol registeret kan vi bestemme om porten skal være input eller output. En portkreds indgår i systemets memorymap på lige fod med RAM og ROM, og skal altså have en fysisk adresse i memorymappen.

Instruction register 8080MnemonicMachine CodeOperation8080 Mnemon ic Machine CodeOperation Move Increment/Decrement MOVA,B78A <- BINRA3CA <- A + 1 MOVA,C79A <- CINRB4B <- B + 1 MOVA,H7CA <- HDCRA3DA <- A - 1 MOVA,L7DA <- LDCRB5B <- B - 1 MOVA,M7EA <- (HL)Rotate LDAXB0AA <- (BC)RLC7--- LDAXD1AA <- (DE)RRC0F--- LDAword3AwordA <- (word)RAL17--- ADDRAR ADDA87A <- A + A Logiske ADDB80A <- A + BANABA0A <- A AND B ADDM86A <- A + (HL)XRABA8A <- A XOR B ---DD86indexA <- A + (IX+index)ORABB0A <- A OR B ADIbyteC6byteA <- A + byteCMPBB8A - B Substract Branch SUBA97A <- A - AJMPaddressC3addressPC <- address SUBB90A <- A - BJNZaddressC2addressIf NZ, PC <- address SUBM96A <- A - (HL)JZaddressCAaddressIf Z, PC <- address ---DD96indexA <- A - (IX+index) Stack Operation Instructions SUIbyteD6byteA <- A - bytePUSHBC5(SP-2) <- C; (SP-1) <- B; SP <- SP - 2 PUSHDD5(SP-2) <- E; (SP-1) <- D; SP <- SP - 2 POPBC1B <- (SP+1); C <- (SP); SP <- SP + 2 POPDD1D <- (SP+1); E <- (SP); SP <- SP De operationer som processoren kan udfører er begrænset til nogle meget simple funktioner. Kort fortalt handler det om at flytte data fra et register til et andet eller til hukommelsen. Der ud over kan den addere og substraherer samt gang med 2,4,8 ved at lave shift left. Alle operationer er knyttet til en bestem HEX kode (Machine code)

Code example Her er et simpelt eksempel på maskinkode. Bemærk at det er programmøren selv der skal holde styr på hvor i memory koden skal lægge, og også hvor de forskellige variable ligger.

Assembler include "emu8086.inc" org 100h mov al, 25 ; set al to 25. mov bl, 10 ; set bl to 10. cmp al, bl ; compare al - bl. je equal ; jump if al = bl (zf = 1). putc 'n' ; if it gets here, then al <> bl, jmp stop ; so print 'n', and jump to stop. equal: ; if gets here, putc 'y' ; then al = bl, so print 'y'. stop: ret ; gets here no matter what. ulator/asm_tutorial_01.html Assembler er en mere venlig måde at skrive maskikode på. Her er alle koderne erstattet af ord, og man har mulighed for at oprette variable navne m.m.

Ansi C #include "stm32f10x.h" // Device header #include #include "LED.h" // Keil::Board Support:MCBSTM32C:LED int main1 (void) { int32_t num = 0; //Anvendes til at angive hvilken LED der tændes/slukkes int32_t max_num = LED_Num() - 1; //LED_Num kommer fra LED.h og angiver antallet af LEDs int32_t i = 0; //En tæller til vores wait loop LED_Initialize();//Init LED kommer fra LED.h while (1){ //Kør evigt LED_On (num);//Tænd LED angivet af num for (i = 0; i < ; i++){} //Vent LED_Off (num); //Sluk LED if (++num > max_num) num = 0; } return 0; } Med C bevæger vi os lidt længere væk fra maskinkoden, men hvis vi vil skrive til computerens hardware skal vi stadig have styr på hvilke adresser det ligger på. Heldigvis indeholder vores IDE en række biblioteker som hjælper med dette. I det viste eksempel skrives til nogle LEDs, men det er kun muligt fordi bibliotekerne kender adressen på de porte som hver LED er forbundet til.