LABORATION DATORTEKNIK Y. DATORTEKNIK D DATORTEKNIK M/1/C 1.1. TUTOR M68008 SYSTEM OCH ASSEMBLER

Storlek: px
Starta visningen från sidan:

Download "LABORATION DATORTEKNIK Y. DATORTEKNIK D DATORTEKNIK M/1/C 1.1. TUTOR M68008 SYSTEM OCH ASSEMBLER"

Transkript

1 LABORATION DATORTEKNIK Y. DATORTEKNIK D DATORTEKNIK M/1/C 1.1. TUTOR M68008 SYSTEM OCH ASSEMBLER Stefan Gustav son, Olle Ro os m fl ISY-LiTH 1996

2

3 Innehåll l Introduktion Historia Nutid Framtid M68008 ur programmerarens synvinkel Programrnerarmodell Adresseringsmoder Minnesmodell Instruktionsformat Dataformat Instruktionslista M68008 ur hårdvarukonstruktörens synvinkel Processoms signaler Adressbuss Databuss Asynkron busskontroll Synkron busskontroll lo 3.6 Val av bussägare Systemkontroll A v brottssignaler Statussignaler TUTOR-systemet: maskinvara Översikt Processorkortet Indelning av adressrymd Serieport Parallellport Programmering av parallellporten Avbrottshantering i parallellportsadaptern Händelser i processorn vid avbrott Uppstart av systemet Kopplingsschema TUTOR-systemet: programvara Kommandon i TUTOR Visa minnesinnehåll Ändring av minnesinnehåll Visafändra registerinnehåll Brytpunkter Exekvering och felsökning av program Hjälp Fe1meddelanden Radassembler Assemblerprogrammering på M Förkortningar Adresseringsmoder Två operander: Source och Destination Sammanställning av instruktioner Instruktionslista for M

4

5 l. Introduktion 1.1. Historia Den amerikanska halvledartillverkaren Motorolas första och mycket framgångsrika mikroprocessor M6800 kom ut på marknaden Processorn var en klassisk 8-bitars ackumulatormaskin där varje register hade sin speciella funktion, t.ex ackumulator, indexregister och stackpekare kom en förbättrad variant kallad M6809. Denna hade några fler interna register som gav programmeraren litet större friheter att utnyttja registren för mellanlagring av data. Dessutom tillkom några extra adresseringssätt 1984 presenerade Motorola den första processorn i sin nästa generation processorer: M Processorerna i M68000-farniljen är 16-bitars eller 32-bitars processorer med 16 generella register, alla med bredden 32 bitar. Programmeraren kan själv bestämrna om registren skall fungera som ackumulator, indexregister, räknare eller stackpekare. Den interna databehandlingen i processorn kan ske med ordlängden 8, 16 eller 32 bitar. M68000 hade 24 bitars adressbuss och 16 bitars databuss. Bland annat Commodore Arniga och de första modellerna av Apple Macintosh var uppbyggda kring M Processorn har nu slutat tillverkas, men den har modemare efterföljare. M68008 är en enklare variant av M Internt är de två processorerna identiska. Båda har samma instruktionsuppsättning och kan köra samma prograrnkod. Skillnaden är att M68008 kommunicerar med omvärlden med hjälp av en 8 bitar bred asynkron databuss och att adressbussen bara är 20 bitar bred. Detta gör att processorn får plats i en billigare 48-bens kapsel. I många enklare tillämpningar ger inte den smalare databussen någon större prestandasänkning, och de billiga periferikretsar som utvecklats för 8 bitars processorer kan enkelt anslutas till M Nutid M68000-farniljen har sedermera utvecklats betydligt, med bland annat processorerna M68010, M68020, M68030 och M68040, flyttalsprocessorerna M68881 och M68882 och diverse andra kringkretsar. Alla modeller har samma grundarkitektur, men de har på senare år blivit betydligt snabbare och försetts med bredare adress- och databussar samt stöd för flyttalsprocessor, cacheminne och virtuell minneshantering. Instruktionsuppsättningen har också utökats något med tiden. Den senaste generationen mikroprocessorer från Motorola är PowerPC, som utvecklats tillsammans med IBM. PowerPC sitter i moderna Apple Macintosh, i vissa arbetsstationer och stordatorer från IBM samt i några av de allra senaste nya persondatorerna, till exempel BeBox. PowerPC är en så kallad RISC-processor, vilket innebär ännu ett genomgripande byte av grundarkitektur, och PowerPC-processorer är inte på något sätt kompatibla med M processorema Framtid M68000-arkitekturen utvecklas inte vidare av Motorola och är alltså egentligen ett avslutat kapitel i datorteknikens historia, även om processorerna kommer att fortsätta att användas för mindre krävande tillämpningar i många år framöver. Anledningen till att vi fortfarande väljer att använda M68000 i denna kurs är att det är en förhållandevis enkel och lättbegriplig mikroprocessor med en ren, väl genomtänkt och modem grundarkitektur. M68000 fungerar alldeles utmärkt som ett allmänt exempel, och den har mycket gemensamt med de flesta moderna mikroprocessorer som sitter i bland annat persondatorer, arbetsstationer, hushållsapparater och industriella mät-, styr- och reglersystem. M68000-arkitekturen är helt enkelt en lagom utgångspunkt för en inledande kurs i datorteknik och mikroprocessorarkitektur, och det är rakt inte bortkastad tid att lära sig mer specifika detaljer om den. Har man förstått en processors arkitektur är det tämligen lätt att sedan sätta sig in i en annan. De allra flesta moderna processorer är i själva verket mycket lika, även om de skiljer sig åt i fråga om pris och prestanda. - 3-

6 -4-

7 2. M68008 ur programmerarens synvinkel 2.1. Programmerarmodell Programmerarens bild av processorn M68008 visas i figur l. Processorn innehåller 8 dataregister, DO - D7. Dataregistren är vardera 32 bitar breda och kan bearbeta data om 8 bitar (byte), 16 bitar (word) eller 32 bitar (Iong word). Dataregistren är generella och kan användas som ackumulatorer, indexregister eller räknare. Processorn innehåller dessutom 8 adressregister, AO - A 7. Adressregistren är 32 bitar breda och arbetar med datalängden 16 eller 32 bitar. Adressregistren kan inte arbeta med datalängden 8 bitar. A v namnet "adressregister" framgår att de främst är avsedda för att lagra adresser. Adressregister A 7 är litet speciellt i det att det dessutom används som systemstackpekare. 1 Programräknaren PC har bredden 32 bitar, men i M68008 används endast 20 bitar. Med dessa 20 bitar kan en linjär adressrymd om l Mbyte (2 20 bytes) utpekas. Processorninehåller slutligen ett 16 bitar brett statusregister, SR r. o o DO AO A1 A2 A3 A4 AS AG A7 PC Dataregister Adressregister stackpekare (USP/SSP) Programräknare SR statusregister Figur l: Programmerarmodell M68008 statusregistret är uppdelat på två 8-bitarsgrupper. Den ena gruppen, "user byte", innehåller villkorsregistren (flaggorna), vilka ändras av de flesta instruktioner. Den andra gruppen, "system l. Register A7 består i verkligheten av två register. Processorn kan arbeta i två lägen, Supervisor mode och U ser mode. Vazje läge har sin speciella stackpekare. Detta är emellertid inget vi behandlar närmare i denna kurs. - 5-

8 byte", innehåller bitar som styr processorns funktion och kan bara ändras av så kallade privilegierade instruktioner. Egentligen används bara 5 bitar i vardera gruppen. statusregistrets bitar beskrivs närmare i figur 2. System byte : User byte l 10 g 8 1 Trace mode. lnterrupt ' Superv1sor ask mode m l Extend Negative Zero ----' Overflow---' Carry-----' 2.2. Adresseringsmoder Figur 2: statusregistret Assemblerkoden talar om för processorn vilken typ av operation som ska utföras. Koden ger också information om adresser till den operand eller de operander som påverkas av operationen. Det finns många olika sätt att ange dessa adresser. M68008 har 14 olika adresseringsmoder. Här följer en kort beskrivning av de olika huvudmoderna. En närmare beskrivning kommer senare i kapitel 6. Underförstådd (implied) Operationskoden innehåller underförstådd information om var data skall hämtas eller lagras. Register (register direct) Operanden (data) finns i ett av de interna data- eller adressregistren. Omedelbar (immediate) Operanden lagras med själva instruktionen och följer omedelbart efter operationskoden i minnet. Absolut (absolute) Adressen till operanden följer omedelbart efter operationskoden i minnet. Indexering (indexed) Den effektiva adressen beräknas som summan av en basadress och en förskjutning. Indirekt (indirect) Den effektiva adressen finns i ett internt register. Innehållet i registret talar om för processorn var någonstans i minnet operanden finns lagrad. Relativ (relative) Operandens läge anges i förhållande till programräknarens aktuella innehåll. Genom kombinationer av ovanstående moder kan totalt 14 olika adresseringsmoder bildas. Vi återkommer till närmare detaljer om de olika adresseringsmoderna i kapitel Minnesmodell Adressbussen hos M68008 är 20 bitar bred, och databussen är 8 bitar bred. Minnet är således organiserat i 2 20 ord om 8 bitar (totalt l Mbyte), som visas i figur 3. Senare processorer i M familjen har stöd för virtuellt minne och cacheminne, men M68008 har en enkel och lättbegriplig linjär adressrymd där vru:je adress motsvaras av exakt en fysisk minnesposition. -6-

9 Adress $00000 $00001 $ bitar BytenrO Byte nr l Byte nr 2 Totalt 2 20 bytes (l Mbyte) $FFFF ~~ Bytenr ~FFFFF t=j Byte nr Figur 3: Minnesorganisationför M Instruktionsformat Instruktionsorden för maskinspråksinstruktioner är alltid 16 bitar långa, och upptar alltså två bytes i primärminnet. En instruktion måste alltid börja på jämn adress. Instruktionslängden varierar från 2 bytes (endast instruktionsordet) till som mest lo bytes (instruktionsordet plus 8 bytes operandinformation). Instruktionsordet specificerar alltid operationskod och adresseringsmod. Eventuella efterföljande ord innehåller omedelbara data eller adressinformation på 16 eller 32 bitars format. En grafisk framställning av detta återfinns i figur 4. Instruktioner utan operander Adress N Instruktion l N+ l N+2 Instruktion 2 N+3 Figur 4: Instruktionsformatet för M68008 Instruktion med operander Adress M Instruktion M+1 M+2 Operanddata M+3 (2-8 bytes) M+4 M+5 Instruktionsformatet är mycket varierande och flexibelt, och det är krångligt att manuellt översätta från assemblerkod till maskinkod ("göra en handassemblering"). Instruktionen MOVE kan till exempel kodas på olika sätt. Assembleringen överlåter man således helst till en dator Dataformat Operander som hämtas och lagras i minnet kan vara antingen 8, 16 eller 32 bitar breda. 8 bitars operander kan lagras på godtycklig adress, men 16- och 32-bitars operander, och därmed också instruktioner, måste börja på en jämn adress. Detta är en konsekvens av att M68008 är internt identisk med M68000, som har en 16-bitars databuss. 16- och 32-bitars operander lagras med sin mest signifikanta byte (Most significant byte, MSB) på den lägsta adressen och den minst signifikanta byten (Least significant byte, LSB) på den högsta adressen. Motorola använder denna ordning i alla sina processorer, liksom många andra tillverkare. Det är åtminstone i vissa avseenden en naturlig ordning. Tyvärr gör flera andra processortillverkare, däribland den största tillverkaren Intel, tvärtom och lägger den minst signifikanta byten på den lägsta adressen. Detta är en ständig källa till förtret när man överför data mellan olika datorsystem, men det verkar som om det är ett problem vi får leva med för överskådlig tid framöver Instruktionslista Vi går inte här närmare in på vilka instruktioner som finns i instruktionslistan till M Detta behandlas i stället utförligt i kapitel

10 - 8-

11 3. M68008 ur hårdvarukonstruktörens synvinkel 3.1. Processorns signaler Processorn M68008 sitter i en 48-bens kapsel. De olika in- och utsignalerna kan sammanföras till grupper enligt figur 5. M~tni?gs- [ spanmng Kl ocksignal Status- [ information Synkron busskontroll Systemkontroll [ [ M V ~ GNO.. AO-A19 - CLK FCO AS FC1 RfW... FC2 os..... E OTACK... VPA BR..... ~ BERR BG RESET IPL0/2... ~..... HALT IPL1... Databuss Adressbuss 3.2. Adressbuss Figur 5: Signaler till ocfz från M68008 Den enkelriktade databussen är 20 bitar bred och innehåller adressinformation vid alla bussöverföringar. En linjär adressrymd om l Mbyte kan utpekas Databuss Databussen är 8 bitar bred och dubbelriktad. All dataöverföring till och från processorn sker över databussen. D7 är mest signifikant bit, DO är minst signifikant Asynkron busskontroll M68008 har som de flesta moderna processorer en asynkron databuss. Förutom adress- och databussarna är fyra signaler inblandade i en asynkron dataöverföring: Address strobe, AS AS idikerar med låg nivå (O) när det ligger en stabil adress på adressbussen. Read!Write, R/W Denna signal visar åt vilket håll överföringen skall ske genom att tala om huruvida det är en läscykel (RIW=l) eller skrivcykel (RJW=O) som skall utföras. Data strobe, DS DS kontrollerar tillsammans med R/W dataflödet på databussen enligt följande: DS R/W Innebörd l - Inga giltiga data på bussen o l Läscykel o o skrivcykel l Asynkron busskontroll J Bussväljare J Avbrottssignaler -9-

12 Data transfer acknowledge, DTA CK Detta är till skillnad från de tre andra busskontrollsignalerna en insignal till processorn. Den skickas av den yttre enhet som sänt eller tagit emot data för att tala om för processorn att läs- eller skrivcykeln skall avslutas Synkron busskontroll Motorolas 8-bitars mikroprocessorer hade synkron bussöverföring. I en synkron överföring styr processorn själv hela busscykeln. M68008 kan överföra data på databussen även med synkron busskontroll för att kunna anslutas till de periferikretsar som utvecklats för de äldre 8-bitars processorerna. Två signaler (eller tre) är inblandade i en synkron bussöverföring. Valid peripheral ad dress, VP A När denna insignal sätts till O instrueras processorn att göra en synkron bussöverföring. Signalen genereras av yttre adressavkodare för att tala om för processorn var någonstans i minnet det sitter kretsar som måste sända och ta emot data med synkrona bussöverföringar. Enable, E Detta är en klacksignal från processorn som talar om när dataöverföring skall ske. Klackfrekvensen för E är en tiondel av processoms klackfrekvens på 8 MHz, alltså 800 khz. Valid memory address, VMA M68000 har en signal VMA som talar om för synkrona kringkretsar att det finns en stabil adress på adressbussen och att processorn under nästa klackintervall för E kommer att göra en synkron bussöverföring. M68008 saknar denna utsignal, men den kan enkelt genereras av yttre logik. (Signalen Gate i TUTOR har denna funktion. Studera gärna kopplingsschemat i figur 11 för att se hur den genereras!) 3.6. Val av bussägare Signalema Bus Request, BR, och Bus grant, BG, används för att välja ägare till bussen. I ett datorsystem kan det finnas flera ägare till bussen, till exempel DMA-enheter och andra processorer. I det enkla TUTOR-systemet finns dock endast en bussägare, och dessa signaler används inte Systemkontroll Signalema BERR (Bus error), HALT och RESET används vid diverse extraordinära tillfällen. HALT och RESET är trådbara ingångar som också kan fungera som utgångar. Antingen processorn själv eller en yttre enhet kan sätta dessa ingångar till O. Den röda nollställningsknappen på TUTOR-kortet påverkar signalerna HALT och RESET så att systemet startar om. Om processorn får signalen BERR=O genereras ett avbrott till en speciell avbrottsvektor. Denna signal genereras i TUTOR-systemet när adressbussen pekar ut en minnesposition som inte har något minne anslutet. - lo-

13 3.8. Avbrottssignaler M68000 har tre avbrottssignaler, IPL2, IPLl och IPLO. Prioritering sker enligt följande: IPL2 IPLl IPLO Begärd avbrottsnivå l l l O (inget avbrott begärs) l l o l (lägsta prioritet) l o l 2 l o o 3 o l l 4 o l o s o o l 6 o o o 7 (högsta prioritet) På processorn M68008 har man sparat in ett ben genom att koppla ihop signalerna IPL2 och IPLO. Detta resulterar i följande prioritetstabell IPL2/0 IPLI Avbrottsnivå l l O (inget avbrott) l o 2 o l 5 o o 7 För en beskrivning av vad som sker i processorn vid en avbrottsbegäran, se avsnitt statussignaler statussignalerna FC2, FC l och FCO informerar omvärlden om processoms interna tillstånd enligt följande: FC2 FCl FCO Cycle type o o o Undefined o o l User data o l o U ser program o l l Undefined l o o Undefined l o l Supervisor data l l o Supervisor program l l l Interrupt acknowledge

14 - 12 -

15 4. TUTOR-systemet: maskinvara 4.1. Översikt Vid laborationerna har du tillgång till ett komplett enkelt mikrodatorsystem kallat TUTOR, konstruerat vid ISY av Lennart Asperud. Systemet är uppbyggt kring processorn M Vid labplatsen finner du följande: Kraftaggregat + 5V Processorkort TUTOR Kopplingsplatta för parallellporten Korthållare Terminal Kontroll av systemet och programmering sker med hjälp av terminalen. Program skrivs in i assemblerkod. Du kommer under laborationerna att använda en enkel resident assembler som finns lagrad i ROM i monitorprogrammet till TUTOR. För mera avancerade programmeringsuppgifter kan man använda en korsassembler på en mer avancerad värddator. Värddatorn sköter då assembleringen och sänder maskinkod direkt till TUTOR-systemet Processorkortet Processorkortet innehåller: Mikroprocessor M68008, klackfrekvens 8 MHz RAM 32 Kbyte ROM 32 Kbyte Serieport (ACIA M6850) för kommunikation med terminal Parallellport (PIA M6821) med två programmerbara 8-bitars portar Programmerbar logikkrets (PAL) för adressavkodning mm Klackkretsar för CPU och ACIA Drivkrets för terminalkommunikationen Diverse analoga komponenter 4.3. Indelning av adressrymd Processorn har 20 adressledningar och kan därmed adressera l Mbyte. På kortet finns 32 Kbyte RAM och 32 Kbyte ROM. Några ytterligare adresser används av I/O-kretsarna. Adressrymden i systemet är disponerad enligt följande: Adress (hex) Beskrivning $ $008FF 2304 byte RAM för system och monitor $ $0 IFFF 6158 byte RAM för användare $ $07FFF 24 Kbyte RAM för användare $ $0BFFF 16 Kbyte EPROM med monitorprogrammet TUTOR $0COOO - $0FFFF 16 Kbyte EPROM med diverse hjälpprogram (ganska tomt) $ $107FF 2 Kbyte synkron area för l/o-kretsar $ $FFFFF 958 Kbyte, används ej - 13-

16 4.4. Serieport Processorkortet inehåller en serieportsadapter av typ M6850 (Asynchronous Communications Interface Adapter, ACIA). Porten används av systemets terminal. Serieportsadaptern tar upp två adresser i primärminnet. $10040 Control register (write only) $10040 Status register (read only) $10042 Transmit data register (write only) $10042 Recieve data register (read only) A v brott kan inte genereras från serieporten. Programstyrd in- och utmatning används för seriekommunikationen. Överföringshastigheten som används är 4800 bps (bits per sekund). Du kan om du så önskar skriva program som läser eller skriver tecken via serieporten. Monitorprogrammet TUTOR innehåller också ett antal subrutiner för in- och utmatning till serieporten. De program du kommer att skriva i laborationskursen arbetar dock inte med serieporten, utan med parallell porten. Vi går därför inte närmare in på funktionen hos M6850. För vidare information hänvisas till Motorolas datablad för kretsen Parallellport Processorkortet innehåller en parallellport M6821 (Peripheral Interface Adapter, PIA). Porten är avsedd för användaren och används inte för andra uppgifter. Portens in- och utsignaler är anslutna till ett 26-poligt kontaktdon. Till detta kontaktdon kan man ansluta en bandkabel som avslutas med en kopplingsplatta märkt enligt följande: Figur 6: Kopplingsplatta för anslutning till parallellporten - 14-

17 4.6. Programmering av parallellporten PIA M6821 innehåller sex programmerbara register. Fyra av registren delar dock på två adresser, så porten tar bara upp fyra adresser i primärminnet. $10080 DDRA, Data direction register A $10080 PIAA, Peripheral register A A-del $10084 CRA, Control register A $10082 DDRB, Data direction register B $10082 PIAB, Peripheral register B B-del $10086 CRB, Control register B Registren ligger som synes inte på konsekutiva adresser. Detta är en något obekväm bieffekt av att processorn M68008 inte är en "äkta" 8-bitars processor, utan är internt identisk med M68000 som har en 16 bitars databuss och därför adresserar 8-bitars periferikretsar på detta sätt. Porten består av två delar, en A-del och en B-del. Det finns vissa små skillnader mellan de båda halvorna, men de är funktionsmässigt i stort sett identiska. I fortsättningen behandlas endast A delen. Allt som sägs gäller även för B-delen. Register beteckningar: PIAA DDRA CRA dataregister A riktningsregister A kontrollregister A A-delen innehåller tre register, men upptar endast två adresser i primärminnet. Detta kommer sig av att PIAA och DDRA adresseras med samrna adress. När denna adress utpekas görs valet mellan PIAA och DDRA av parallellportsadaptern själv baserat på bit nr 2 i kontrollregistret, CRA-2. CRA-2 =O l DDRA utpekas l _ CRA-2 = l _ PIAA utpekas Programmering avddra Innehållet i riktningsregistret DDRA bestämmer datariktningen för varje bit i PIAA. En l :a i en bit i DDRA gör motsvarande bit i PIAA till utgång. En O:a gör motsvarande bit till ingång. Programmering av CRA Kontrollregistrets bitar kan delas in i följande grupper: CRA o StyrCA2 y Styr CA1 -signalflaggor för avbrott 0: DDRA utpekas 1: PIAA utpekas Figur 7: Kontrollregistrets bitar Flaggan CRA-7 l-ställs av den yttre signalen CAl, och flaggan CRA-6 l-ställs av den yttre signalen CA2. Dessa bitar kan inte skrivas, bara läsas. Flaggorna CRA-7 och CRA-6 nollställs indirekt genom läsning i dataregistret PIAA. Mer om detta senare

18 Yttre signalen CA-l: bitarna CRA-1 och CRA-0 CRA-1 = O CRA-7 l-ställs när CAl växlar från l till O CRA -l = l CRA -7 l-ställs när CA l växlar från O till l CRA-0 = O IRQA aktiveras ej när CRA-7 l-ställs. Avbrott spärras. CRA-0 =l IRQA aktiveras när CRA-7 l-ställs. Avbrott matas vidare till processorn. Yttre signalen CA2: bitarna CRA-5, CRA-4 och CRA-3 Till skillnad från CAl, som bara kan användas som ingång, kan CA2 användas antingen som ingång eller som utgång. CRA-5 =O gör CA2 till ingång. CRA-4 och CRA-3 påverkar CA2:s funktion som ingång på följande sätt: CRA-4 =O CRA-4 = l CRA-3 =O CRA-3 = l CRA-6 l-ställs när CA2 växlar från l till O CRA-6 l-ställs när CA2 växlar från O till l IRQA aktiveras ej när CRA-6 l-ställs. Avbrott spärras. IRQA aktiveras när CRA-6 l-ställs. Avbrott matas vidare till processorn. CRA-5 = l gör CA2 till utgång. Utgångens värde styrs då med CRA-4 och CRA-3. CRA-4 CRA-3 Resultat l o Utgången CA2 = O l l Utgången CA2 =l Återstående kombinationer av CRA-4 och CRA-3 har tämligen speciella funktioner som vi inte går närmare in på. För närmare detaljer hänvisas till Motorolas datablad. Exempel på startprogram för PIA Programmeringen av varje del (A eller B) görs typiskt i tre steg. l. Nollställ kontrollregistret Detta görs för att först komma åt riktningsregistret 2. Programmera riktningsregistret 3. Programmera kontrollregistret Bit 2 sätts till l för att i fortsättningen peka ut dataregistret. Antag att vi vill programmera PAO till PB7 samt PB4 till PB7 som utgångar och PBO till PB3 som ingångar. Vi vill att CAI skall ettställa CRA-7 på positiv flank (växling från noll till l), men vi vill inte att avbrott skall signaleras. CA2, CB l och CB2 skall inte användas, så vi väljer att programmera dem som ingångar och spärra avbrottsbegäran från dem. Vi skall alltså programmeraddra med endast ettor och DDRB med ettor i bit 7 ti114 och nollor i bit 3 till O. Vad vi skall skriva in i CRA får vi bena ut bit för bit. CRA-7 och CRA-6 kan vi inte skriva i, så vi väljer bit 7 och bit 6 till noll för enkelhets skull. CA2 sätts till ingång och avbrott spärras genom att sätta bitarna CRA-5 till CRA-3 till 000. Bit 2 skall sättas till l för att i fortsättningen läsa och skriva i dataregistret och inte riktningsregistret. CA-l sätts till ingång med känslighet för positiv flank genom att sätta bitarna CRA-1 och CRA-0 till 10. Till CRA skall alltså skrivas det binära innehållet O. På samma sätt kommer vi fram till att CRB skall ha innehållet l 00. Följande program programmerar PIA enligt ovan: CLR.B MOVE.B MOVE.B CLR.B MOVE.B MOVE.B $10084 #$FF, $10080 #$06, $10084 $10086 #$FO, $10082 #$04, $10086 CRA nollställs DDRA = $FF CRA slutvärde CRB nollställs DDRB = $FO CRB slutvärde - 16-

19 4.7. Avbrottshantering i parallellportsadaptern Parallellporten kan signalera avbrott med hjälp av signalflaggorna CA-7 och CA-6 i kontrollregistren. CRA-7 påverkas av kontrollsignalen CAl, och CRA-6 påverkas av signalen CA2. När någon av signalflaggorna är l-ställd (eller om båda är l-ställda) och kontrollregistret CRA är programmerat för att släppa igenom motsvarande avbrott signaleras ett avbrott på den yttre signalen IRQA (interrupt request A) på M6821. IRQA är ansluten (via en del styrlogik) till IPL2/ O på processorn. Parallellportens B-del signalerar avbrott med signalflaggorna CRB-7 och CRB- 6. Dessa signalflaggor aktiverar IRQB. IRQBär ansluten (via en del styrlogik) till processoms avbrottsingång IPLl. A-delens båda signalflaggor nollställs genom läsning i dataregister PIAA, B-delens genom läsning i PIAB. Detta kan vid en första anblick tyckas något underligt, men vid närmare eftertanke är det mycket praktiskt. Vid en typisk verklig användning av parallellportsadaptern signaleras avbrott när ett dataord kommit in och behöver tas om hand. När processorn läst dataordet har orsaken till avbrottet åtgärdats, och avbrottsflaggan kan (och bör) nollställas omedelbart. Observera att om både CA l och CA2 programmeras till att kunna begära avbrott måste man först i avbrottsrutinen läsa i kontrollregistret CRA för att ta reda på vilken ingång som begärt avbrott Händelser i processorn vid avbrott När en yttre enhet begär avbrott kan avbrottsbegäran ske på olika prioritetsnivåer. M68000 har tre avbrottsingångar IPLO, IPLl och IPL2 som när de aktiveras i olika kombinationer kan signalera avbrott på 7 olika nivåer. M68008 har IPLO och IPL2 sammankopplade till en enda signal och kan därför endast ta emot avbrott på nivåerna 2, 5 eller 7 (IPLl ger nivå 2, IPL0/2 ger nivå 5, och båda samtidigt ger nivå 7). Avbrottsbegäran sker genom att aktivera signalerna IRQA, IRQB eller ABORT på processorkortet ABORT har högsta prioriet (prioritet 7) och kan inte spärras. Denna signal aktiveras av den svarta knappen (Abort) på processorkortet IRQA och IRQB är avsedda att utnyttjas av användaren. För att ett avbrott skall accepteras av processorn krävs att det begärande avbrottet har högre nivå än den nivå som indikeras av bitarna 12, I l, 10 i statusregistret. IRQ7 särbehandlas dock och slår alltid igenom. När ett avbrott slår igenom sker ett autovektoriserat avbrott, vilket innebär att processorn hämtar en så kallad avbrottsvektor som anger adressen till avbrottsprogrammet som skall utföras. Vid avbrottsbegäran på nivå 2 hämtas avbrottsvektorn på adress $68. Vid avbrottsbegäran på nivå 5 hämtas avbrottsvektorn från adress $74. Vid avbrottsbegäran på nivå 7 hämtas vektorn på adress $7C. En fullständig förteckning över de olika avbrottsvektorerna i M68008 återfinns i figur 8. Avbrottsnivå 7 är reserverad för den svarta Abort-knappen på processorkorte t. Avbrottsvektorn för denna avbrottsnivå pekar på en avbrottsrutin i ROM i monitorprogrammet Denna avbrottsrutin presenterar vid avbrottstillfället innehållet i samtliga interna register, återställer stackpekaren till att peka på TUTOR-programmets interna stack samt matar ut prompten TUTOR 1.3>. Programexekveringen kan återupptas med TUTOR-kommandot G. Ändra inte avbrottsvektorn på adress $7C. Då kommer inte Abort-knappen att fungera längre! (Den röda Reset-knappen fungerar dock alltid.) Däremot skall du i laborationen "Avbrott" lägga in startadresserna till dina egna avbrottsrutiner på adresserna $68 och $

20 Vector Decimal address Hex address Assignment o o 000 Reset initial SSP l Reset initial PC Bus error 3 12 ooc Address error Illegal instruction Zero divide CHK instruction 7 28 O l C TRAPV instruction Privilege violation Trace Line l O l O emulator C Line 1111 emulator C Reserved Spurious interrupt Level l interrupt autovector Level 2 interrupt autovector C Level 3 interrupt autovector Level 4 interrupt autovector Level 5 interrupt autovector Level 6 interrupt autovector C Level 7 interrupt autovector TRAP#O TRAP#l TRAP# OB4 TRAP# OB8 TRAP#l OBC TRAP#l OCO-OFC Reserved FF User interrupt vectors Figur 8: Avbrottsvektorerna i början av minnesområdet i M68008 Avbrottsnivån kan i vissa fall behöva ändras explicit av ett program. Detta kan göras med någon av de privilegierade instruktioner som ändrar innehållet i SR: AND.W #data,sr OR.W #data,sr E OR. W #data, SR MOVE.W #data,sr Bitarna 10, 9 och 8 i SR anger den aktuella avbrottsnivån som ett trebitars binärt tal. Under normal programkörning är avbrottsnivån noll. Observera att bitarma T och S i SR inte bör ändras. V ar särskilt försiktig med instruktionen MOVE. W #data, SR! När ett avbrott accepteras händer följande: l. Det föregående innehållet i PC och SR sparas på stacken (supervisor-stacken). 2. SR uppdateras genom att bit S l-ställs, bit T O-ställs, och 12, Il, 10 sätts till ett tre bitars binärt tallika med den begärande avbrottsnivån. När S= l arbetar processorn i Supervisor mode. Med T=O förhindras stegvis exekvering av instruktioner. 3. PC laddas med en avbrottsvektor ( startadressen till avbrottsprogramrnet). Olika vektorer väljs beroende på nivån på avbrottet. 4. Avbrottsprogrammet exekveras

21 När återhopp görs från avbrottsprogrammet med instruktionen RTE (Return from exception) återställs de gamla innehållen i SR och PC från stacken. Före avbrott: Avbrott accepteras: EfterRTE: SP-> Gamla SR Gamla PC SP-> l SP-> 4.9. Uppstart av systemet Vid spänningstillslag händer följande: Figur 9: Slackens förändring vid avbrott l. Processorn ställs i Supervisor mode 2. stackpekaren får värdet SSP = $ statusregistret får värdet SR= $ Programräknaren laddas med startadressen för monitorprogrammet TUTOR. 5. Monitorprogrammet startar och utför en startsekvens, som bland annat programmerar serieporten till att kommunicera med den anslutna terminalen och laddar avbrottsvektom för avbrottsnivå 7. Därefter matar monitorn ut prompten: TUTOR 1.3 > Sedan väntar systemet på ett TUTOR-kommando. Ovanstående sekvens erhålls även vid intryckning av den röda Reset-knappen på processorkortet Reset-knappen påverkar även de yttre kretsar som är anslutna till bussignalen RESET. Efter spänningstillslag (eller Reset) befinner sig således processorn i Supervisor mode med stackpekaren SSP = $00786 (stack för TUTOR-programmet) och den interna avbrottsnivån lika med 7. Det är ingenting som hindrar att processorn får fortsätta att arbeta i Supervisor mode hela tiden under alla de laborationer du kommer att genomföra. Däremot är det viktigt att användarprogram har en stack som är skild från TUTOR-programmets stack. Om du skall använda subrutiner eller avbrott i dina program (och det skall du) är det viktigt att du först i ditt program sätter stackpekaren till att peka på ett lämpligt ställe i RAM som inte används till annat. Ett lämpligt ställe är adressen $08000, som ligger högst upp i det tillgängliga RAM-minnet. stackpekaren sätts till detta värde med instruktionen: LEA $ O 8 O O O l A 7 (eller MOVE L # $ O O O O 8 O O O l A 7 om man så vill) Observera att instruktionen LEA $8000,A7 tolkas som en kort adress och fylls ut till $FFFF8000, vilket ger felaktigt resultat. Genom att ange adressen som $ , eller bara $08000, undviker du att den misstolkas av assemblem som en kort adress och fylls ut felaktigt till en lång adress Kopplingsschema TUTOR-systemets kopplingsschema visas i figur 10. Det ekvivalenta innehållet i P AL-kretsen visas i figur

22 ~ ~ ;:..,... ~ ~ ;g - f 1'1:) ~.., 'B? ;:! ~ 2l g. s ~... ~ ~ ~ ~?l;~~. L R16 330k 41!C '3 Ha. t t _~~ Re'5'et!L1 A13 l Al'3 R6 2k t~ Abort R18 lm C6 f~ 1221' ~Abort l Tk 2 IC B EXD 3 16 MHz [ B MHz l AS R lok fk! u -, Cl o (1\ 0.. w c IX w....j c.j ~ TPI?l!fi'AC"R BEr r FC O FC l FC 2 Ck l RAM \.'Men ROM Go. t t R9 2k c VJ Reiet!C3 qo 1C.6 ~ DO- 07 i! l -- K...a. 07 ~ AO CS2 ~ co o (X) \D u x är E R/0 + AO d_ Al RS "" IQ EXD 3 19,66MHz 76,BkHz l.j Al4 ;j!l RSO A6 CSI ~--=i (U RxCtk (\J ::t..o E TxCtk ~ c ::t ~ - IX :r. lli R/0 2 - 'D DE ~ 3 4 u U > ollll (UUru:> "'W N4004 t-j<r-----, P B O PA 4 re o R9 N l C7-C et F 22.ul_ ~ 2k 7 2 B 41 u ' MPS2369 o 1.. f' ' R l lok Trl lo O p y l Cli-C15 0,1'" m CBI CA! CB2 CA SVett JORD 26 C3 MAX 5 ~ '3 lo ~ ~l CTS ~2TxD --~3 RxD Linje årlvo.re 5 ritr 6 JORD \t o l t u 7 SVett 221+ B +SVolt C4 + 9 JORD 22;t I RAM + BU

23 ,/{/.5 j!j T '- Ut o,..- K /?~S( t J Q l /J/17,/11'1 ö 1-,1118,t:}l9,.. fiib,...40 _r,/il(, & /ll 7.P/'.Q/S -4.5 '- '- & port R/l H l /L/I l /?19 fl/b 1717,41&,1)/s-,4S & ~. r-- - >I r-- 11./I T fl/9...r,1//8 /l n,17/',11/5 E " & - ~ 1?01-1 6/lTE l D Q l--r---l D O t C/~..;: -<) C/e4 r Figur 11: Ekvivalent innehåll i P AL-kretsen EP

24 -22-

25 5. TUTOR-systemet: programvara Med hjälp av olika kommandon i TUTOR kan ditt program felsökas och exekveras. Vid. spänningstillslag till systemet svarar TUTOR med prompten: TUTOR l. 3 > TUTOR väntar därefter på ett kommando. När du trycker på RETURN sänds kommandoraden till systemet Kommandon i TUTOR Visa/ändra minnesinnehåll MD Visa minnesinnehåll MM Visaländra minnesinnehåll MS Ändra minnesinnehåll BF Ändra innehållet i ett minnesblock Visa/ändra registerinnehåll DF Visa innehållet i alla interna register.ao-.a7 Visaländra adressregister.do-.d7 Visaländra dataregister.pc Visaländra programräknare.sr Visaländra statusregister.ss Visaländra Supervisor stackpekare.vs Visaländra User stackpekare Exekvering av program BR Visalsätt brytpunkt NOBR Tag bort brytpunkt GO Exekvera till brytpunkt GT Exekvera till temporär brytpunkt GD Exekvera utan brytpunkt TR Trace, utför en instruktion TT Trace till temporär brytpunkt Hjälp HE Visa hjälp Monitorprogrammet TUTOR accepterar endast stora bokstäver (använd Caps Lock-tangenten på terminalen). Alla tal som matas in antas vara hexadecimala tal. Vill du att ett tal ska tolkas som ett decimalt tal måste talet föregås av & Visa minnesinnehåll Kommandot MD (Memory Display) används för att visa minnesinnehåll TUTOR 1.3 > MD adress (antal) (;option) Med böljan från den angivna adressen adress visas det antal byte som anges av antal. Om inget antal anges visas 16 byte. Adressen och antal anges som hexadecimala tal. -23-

26 Anges ingen option visas minnesinnehållet i hexkod och motsvarande ASCII-kod. Data visas alltid i grupper om 16 byte. Är an tal inte en multipel av 16 visas ändå alltid ett helt antal grupper om 16 byte. TUTOR 1.3 >MD CB F B K!. ed... w@. 8. X.. TUTOR 1.3 > FF FF Al ! E9 6A 8E lo 46 CB B8 08 A x.ij.. FK8. )@ 0020FO 09 BD C9 FF FE CD E D FS =I. -M.. dadmu os F AO ld A4 C y8... H.. $H.. TUTOR 1.3 > Efter det att kommandot utförts väntar systemet på ett nytt kommando. Om du bara trycker Return (Carriage Return, CR, Enter, radmatning, radslut- kärt barn har många namn) visas automatiskt 16 nya grupper om 16 byte. Anges ett nytt kommando avbryts MD och TUTOR övergår till att utföra det nya kommandot. Anges option ; DI aktiveras disassemblerfunktionen. Minnesinnehållet visas nu som assemblerkod. Varje tryckning på Return visar 16 nya disassemblerade rader. TUTOR 1.3 > MD 800C;DI 00800C 41F8044C LEA.L $ C,A0 TUTOR 1.3 > C E MOVE.L #526, DO CLR.L Dl locl MOVE.B Dl, (AO) A 5380 SUBQ.L #l,do 00801C 66FA BNE.S $ E 487A0010 PEA.L $ {PC) DF0008 MOVE.L {A7)+,$ A0012 PEA.L $ A{PC) 00802A 21DF000C MOVE.L {A7)+,$ C 00802E 4E75 RTS FC MOVE.L # ,$ BRA.S $ A 21FC MOVE.L # ,$ DF04CA MOVE.L (A7)+,$000004CA DF04CE MOVE.L (A7)+,$000004CE 00804A 21CF0444 MOVE.L A7,$ TUTOR 1.3 > 5.3. Ändring av minnesinnehåll För att ändra minnesinnehållet använder du kommandona MM (Memory Modify), MS (Memory Set) och BF (Block Fill). MM (Memory modify): Visaländra minnesinnehåll TUTOR 1.3 >MM adress (;option) Kommandot visar innehållet på angiven adress. TUTOR 1.3 > MM CB? ? ? ?AO ?. TUTOR l. 3 > -24-

27 Innehållet kan ändras genom att ange nya data efter frågetecknet, följt av Return. MM har ett antal underkommandon som kan ges med ett extra tecken efter data: data Uppdaterar minnesinnehållet och stegar framåt. da ta A Uppdaterar minnesinnehållet och stegar bakåt. da ta= Uppdaterar minnesinnehåll et, ändrar inte adress. data. Uppdaterar minnesinnehållet och avbryter MM-kommandot. Om data inte anges (lämnas blankt) ändras inte data på minnesadressen ifråga. Du kan alltså trycka på endast Return för att stega dig fram tilllämplig adress, endast A och Return för att stega bakåt, och endast punkt och Return för att bara avbryta kommandot. Datalängden anges av ; option enligt: option datalängd ingen byte ;W ord (16 bitar) ;L långt ord (32 bitar) Option ; DI används vid assemblering. Nya data skrivs då in som assemblerkod. Mer om detta i avsnitt 5.9. TUTOR C TUTOR 1.3 > MM 2000;L CB2100AO? ? F74006B8? ?" F74006B8?AOOOOOOO= AOOOOOOO?. 1.3 > MS (Memory set): Ändra minnesinnehåll Kommandot MS ändrar minnesinnehåll genom att skriva in data på angiven adress. TUTOR 1.3 > MS adress data För detta kommando kan du ange da ta som en sträng innehållande ASCII -kod eller en sträng med hexkod. Flera strängar kan anges. Mellanslag används som skiljetecken mellan strängar. Anges flera strängar kan vmje sträng högst innehålla 8 tecken. ASCII-strängar anges inom apostroftecken. TUTOR 1.3 > MS 'ABC' TUTOR 1.3 > MD AO ABC... X.. TUTOR 1.3 > BF (Block of memory fill): Ändra innehållet i ett minnesblock TUTOR 1.3 > BF adressl adress2 dataord Kommandot BF fyller minnet med da ta med börjaniadres s l och slut i adress 2. Data utgörs av hexkod och måste vara ett ord (16 bitar). Båda adresserna måste varajämna tal. TUTOR 1.3 > BF BADA PHYSICAL ADDRESS= TUTOR 1.3 > MD BADABA DA BADABA DA BADA :Z:Z:Z:Z:Z... X.. TUTOR 1.3 > -25-

28 5.4. Visaländra registerinnehåll För att visa och ändra i registerinnehåll finns kommandona DF och.rr. DF (Display formatted registers): Visa innehållet i samtliga interna register TUTOR l. 3 > DF Kommandot visar innehållet i registren i hexadecimal form. Dessutom visas den instruktion som utpekas av PC i disassemblerad form. TUTOR 1.3 > DF PC=00009FA6 SR=2704=.S7.. Z.. US=FFFFFFFF SS= A DO=OOOOFFOO D1= D2=FED01210 D3= D4=FFFF0031 D5=FFFFFF2C 06= = A0= A1=000000CO A2= A3= A4=00009FA8 A5= A6= A7= A FA MOVE.B (AO),D1 TUTOR 1.3 >.RR (lndividual register display/change): Visaländra innehållet i ett utvalt register TUTOR 1.3 >.RR data RR är registernamnet och kan väljas bland DO- D7, AO- A7, PC, SR, US, SS. Anges inte data visas innehållet i det utvalda registret. Anges da ta ändras dess innehåll till detta. TUTOR l. 3 >. D4.D4=FFFF0031 TUTOR 1.3 >.PC 2000 TUTOR 1.3 >.PC.PC= TUTOR 1.3 > 5.5. Brytpunkter TUTOR kan sätta så kallade brytpunkter på valfria ställen i dina program. När programmet exekveras och når fram till en brytpunkt stoppas exekveringen och innehållet i processoms interna register visas. Exekveringen kan återupptas med något av kommandona GO, GD, GT, TR, eller TT. Brytpunkter sätts med kommandot B R. Kommandona GT och TT sätter temporära brytpunkter som tas bort när de stoppat programexekveringen en gång, medan brytpunkter som satts med kommandot BR måste tas bort med kommandot NOBR. BR (Breakpoint): Visalsätt brytpunkt TUTOR 1.3 > BR (adress (;antal)) Kommandot BR sätter en eller flera brytpunkter i en brytpunktstabell Anges BR utan adress visas samtliga aktuella brytpunkter. Tabellen kan innehålla upp till 8 brytpunkter. Brytpunktema som finns i tabellen sätts in fysiskt i programmet när du kör något av kommandona GO, GT eller IT. Rent praktiskt går detta till så att TUTOR sätter in det illegala instruktionsordet $4ABF på de adresser som bestäms av brytpunktstabellen. Om ditt program spårar ur helt skall du återta kontrollen genom att trycka på ABORT (den svarta kanppen på processorkortet). ABORT anropar en avbrottsrutin som bland annat tar bort dessa illegala instruktioner ur ditt program och återställer minnesinnehållet. Trycker du på RESET (den röda knappen) kan den illegala instruktionen $4ABF lämnas kvar i minnet på de ställen där du hade brytpunkter satta. När programmet når en brytpunkt stoppas exekveringen och innehållet i interna register visas. Därefter övergår kontrollen till TUTOR. Har brytpunkten satts med angivande av an tal räknas an tal ned med l vruje gång programmet passerar brytpunktsadressen. Först när an tal är lika -26-

29 med noll stoppar programmet. Därefter stoppar programmet varje gång vid denna adress. Exekvering återupptas med något av kommandona GO, GD, GT, TR eller TT. TUTOR 1.3 > BR 2020 BREAKPOINTS TUTOR 1.3 > BR 2040;4 BREAKPOINTS ;4 TUTOR l. 3 > NOBR (Remove breakpoint): Tag bort brytpunkter TUTOR 1.3 > NOBR (adress adress... ) Kommandot NOBR tar bort angivna brytpunkter från brytpunkts tabellen. Anges ingen adress töms hela tabellen. TUTOR 1.3 > NOBR 2020 BREAKPOINTS ;4 TUTOR 1.3 > NOBR BREAKPOINTS TUTOR 1.3 > 5.6. Exekvering och felsökning av program Programexekvering startas med något av kommandona GO, GD, GT, TR eller TT. GO (Go execute program): Starta exekvering TUTOR 1.3 > GO (adress) Kommandot GO (eller bara G) startar exekvering på angiven adress. Anges ingen adress tas innehållet i PC som startadress. Brytpunkter sätts in från brytpunktstabellen. TUTOR 1.3 >GO 2000 PHYSICAL ADDRESS= TUTOR l. 3 > GD (Go direct execute program): Starta exekvering utan brytpunkter TUTOR 1.3 > GD (adress) Kommandot GD startar exekvering från angiven adress. Anges ingen adress bestämmer innehållet i PC startadressen. GD sätter inte in några brytpunkter från brytpunktstabellen. GT (Go until temporary bteakpoint): Exekvera till temporär brytpunkt TUTOR 1.3 > GT brytpunktsadress Kommandot GT utför i detalj följande: l. Sätter en temporär brytpunkt på angiven adress. 2. Sätter brytpunkter från brytpunktstabellen. 3. Startar exekveringen från den adress som anges av PC. PC:s innehåll kan ändras med kommandot. PC da ta. -27-

30 När progranunet når en brytpunkt tas den ternporära brytpunkten bort. TUTOR 1.3 > GT 2008 PHYSICAL ADDRESS= PHYSICAL ADDRESS= AT BREAKPOINT PC= SR=2700=.S7... US=FFFFFFFF SS= DO=OAOAOAOA D1= D2=FED01210 D3= D4=FFFF0031 D5=FFFFFF2C D6=0000FFFF D7= A0= A1=000000CO A2= A3= A4=00009FA8 A5= A6= A7= FE BRA. S $ TUTOR l. 3 > Sammanfaller den temporära brytpunktens adress med någon adress i brytpunktstabellen erhålls ett felmeddelande. TUTOR 1.3 > BR 2008 BREAKPOINTS TUTOR 1. 3 > GT 2008 PHYSICAL ADDRESS= ERROR TUTOR l. 3 > TR (Trace): Utför en instruktion i taget TUTOR l. 3 > TR (antal) Kommandot TR (eller bara T) startar exekvering på den adress dom anges av PC. En instruktion utförs, varefter exekveringen stoppas och innehållet i de interna registren visas. Den instruktion som står i tur att utföras visas i disassemblerad form. Anges an tal (he:x.kod) utförs det antal instruktioner som angivits, annars utförs en instruktion. I Trace-moden innehåller prompten ett kolontecken. TUTOR 1.3 :> Efter denna prompt kan du använda samtliga TUTOR -kommandon. Return utför nästa instruktion. Alla andra kommandon avbryter TR-kommandot. TUTOR 1.3 :>.PC 2000 TUTOR l. 3 > TR PHYSICAL ADDRESS= PC= SR=2700=.S7... US=FFFFFFFF SS= D0=00000F20 D1=42284C01 D2=000320C8 D3= D4= DS=OOOOOOOO D6= D7=000001FF A0= A1= A2= A3= A4= A5= A6~ A7= E71 NOP TUTOR 1.3 : > PHYSICAL ADDRESS= PC= SR=2700=.S US=FFFFFFFF SS= D0=00000F20 D1=42284C01 D2=000320C8 D3= D4= DS=OOOOOOOO D6= D7=000001FF A0= Al= A2= A3= A4= A5= A6= A7= E71 NOP TUTOR 1.3 :>.PC.PC= TUTOR 1.3 > -28-

31 TT: (Trace to temporary breakpoint): Trace till temporär brytpunkt TUTOR 1.3 > TT brytpunktsadress Kommandot IT utför följande: l. Sätter en temporär brytpunkt på angiven adress. 2. Sätter brytpunkter från brytpunktstabellen. 3. Startar exekvering i Trace-mode från den adress som anges av PC. När programmet når en brytpunkt bortfaller den temporära brytpunkten Hjälp Det finns inte precis någon utförlig hjälp att få av TUTOR själv, men en lista på tillgängliga kommandon visas om du skriver kommandothe (Help). TUTOR 1.3 > HE. PC. SR. US. SS.DO.Dl.D2.D3.D4.DS. D6.D7.AO.Al.A2.A3.A4.AS.A6.A7.RO.Rl.R2.R3.R4. RS.R6 BF BM BR NOBR BS BT DU G GD GO GT HE MD MM MS OF PA NOPA TM TR TT VE DC LO PF DF M T TUTOR l. 3 > 5.8. Felmeddelanden När du exekverar program som du skrivit själv kan två typer av avbrott med felutskrift erhållas. Försöker du göra en läsning eller skrivning på en adress där det inte finns något minne anslutet erhåller du "Bus trap error". TUTOR 1.3 > MD BUS TRAP ERROR PC= SR=2700=.S7... US=FFFFFFFF SS= D0= Dl=lCFC4D44 D2=0C D3= D4=00004CDC D5= C D6=FFFFFFFF D7= A0= Al= A2= A3= A4= A5= A6= A A7= BO BSR.L $0099B8 TUTOR 1. 3 > Alla ord ( 16 bitar), långa ord (32 bitar) och instruktioner måste börja på en jämn adress i minnet. Försöker du adressera någon av dessa datatyper på en udda adress erhålls "address trap error". TUTOR 1.3 >.PC 2001 TUTOR l. 3 > GO PHYSICAL ADDRESS= ADDR TRAP ERROR PC=00008D68 SR=2700=.S7... US=FFFFFFFF SS= D0= Dl=lCFC2001 D2=0C D3= D4= D5= D6= D7=000015FA A0= A Al=FFFFFFFF A2= A3= A4= A5= B A6= B A7= D MOVE.L $ ,Al TUTOR 1.3 > -29 -

32 Felutskrift kan även förekomma när du arbetar i TUTOR. Eftersom TUTOR är ett mycket litet och enkelt program inskränker sig felutskriften oftast till ett par ord. TUTOR 1.3 > MD 2000;W SYNTAX ERROR TUTOR 1.3 > GO 2001 INVALID ADDRESS= TUTOR WHAT 1.3 > PC TUTOR 1.3 > 5.9. Radassembler Monitorprogrammet TUTOR innehåller en assembler som gör översättningen av assemblerkod till maskinkod (assemblering) samt av maskinkod till assemblerkod (disassemblering). Med hjälp av denna assembler kan du skriva korta program i TUTOR. Assemblem är en primitiv så kallad radassembler, vilket betyder att den endast kan hantera en programrad i taget. När du avslutar inmatningen av en rad med Return görs omedelbart en översättning till maskinkod som lagras i primärminnet. Källtexten som du matar in sparas inte. Eftersom radassemblem inte vet någonting om kommande eller föregående rader i programmet kan du inte använda symboliska namn varken för operander eller adresser. Radassemblem är trots detta fullt tillräcklig för genomförandet av laborationerna i kursen. Du kommer inte att behöva skriva några längre program. Radformat V ruje rad du skriver in i assemblerläget innehåller endera ett assemblerdirektiv eller en exekverbar instruktion. Instruktionen består av en operationskod, oftast åtföljd av en eller flera operander. En exekverbar instruktion matas in enligt notationen i kapitel 6. OBS! En tämligen irriterande egenhet i TUTOR är att du måste bölja inmatningen av en instruktion med minst ett mellanslag. Om du glömmer det inledande mellanslaget kommer TUTOR inte att begripa vad du menar. Detta är återigen en konsekvens av att TUTOR är ett mycket litet och enkelt program. Alltså: kom ihåg att inleda med ett mellanslag när du matar in assemblerinstruktioner! Det skall vara minst ett mellanslag även mellan operationskoden och operandfåltet. Om det är flera operander i operandfåltet skall det vara kommatecken mellan dem. Mellanslag behövs inte mellan operan der. Förutom exekverbara instruktioner enligt instruktionslistan i kapitel 6 och 7 kan radassemblem tolka ett speciellt så kallat assemblerdirektiv: DC. W (Defrne eonstant word). Direktivet lägger ett specificerat ord (16 bitar) i primärminnet. Du kommer förmodligen inte att behöva använda detta direktiv själv, men när TUTOR försöker disassemblera på en adress där det inte finns någon giltig instruktion kommer det att stå DC. W i programlistningen, följt av det ord som inte kunde tolkas. Det finns dock många 16-bitars tal som är giltiga instruktionsord, och sannolikheten är därför ganska hög för att ett slumpmässigt tal tolkas som en formellt korrekt men helt vettlös instruktion. Du kommer att se mycket dumheter från en vilsen disassembler när du matar in program. TUTOR A 00400C 00400E TUTOR 1.3 > 1.3 > MD A40E3 48EA FD 28D8 ocoo ED ;DI OR.W 16611(A2),D3 MOVEM.L D0,-30620(A2) DC.W MOVE.L $85FD (AO)+, (A4)+ DC.W ROXL.L $0COO #6,D5 AND.W #26760, (AO)+ -30-

1. Introduktion - 3 -

1. Introduktion - 3 - 1. Introduktion 1.1. Historia Den amerikanska halvledartillverkaren Motorolas första och mycket framgångsrika mikroprocessor M6800 kom ut på marknaden 1974. Processorn var en klassisk 8-bitars ackumulatormaskin

Läs mer

F8: Undantagshantering

F8: Undantagshantering F8: Undantagshantering Undantagshantering i 68 Vad är ett undantag? Typer av undantag Att skriva undantagsrutiner Undantagshantering, vad och varför? Exempel: Ett system ska mäta temperatur var :e sekund

Läs mer

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen 68000 Arkitektur F2: Motorola 68000 I/O signaler Processor arkitektur Programmeringsmodell Assembler vs. Maskinkod Exekvering av instruktioner i 68000 Instruktionsformat MOVE instruktionen Adresseringsmoder

Läs mer

Övningsuppgifter i Mikrodatorteknik 4p/5p

Övningsuppgifter i Mikrodatorteknik 4p/5p Övningsuppgifter i Benny Thörnberg Mittuniversitetet Inst. för Informationsteknologi och medier Hösten 2005 1 Exekvering av assemblerkod 1.1 Statusflaggors beteende Vad blir C-, N- och Z- flaggornas värden

Läs mer

Lösningsförslag till Tenta i Mikrodator

Lösningsförslag till Tenta i Mikrodator Lösningsförslag till Tenta i Mikrodator 050113 1. Vilka register finns det i processorn och vad används dessa till? D0 till D7: Dataregister som används för beräkningar A0 till A6: Adressregister som används

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #19 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Normaltillstånd vs undantagstillstånd I normaltillstånd

Läs mer

Laboration Datorteknik TSIU02 2. I/O-programmering

Laboration Datorteknik TSIU02 2. I/O-programmering Laboration Datorteknik TSIU02 2. I/O-programmering Stefan Gustafsson version 1.1 1. Inledning Laboration: I/O-programmering Du skall i denna laboration programmera TUTOR till att signalera i Morsekod.

Läs mer

LABORATION DATORTEKNIK Y DATORTEKNIK D

LABORATION DATORTEKNIK Y DATORTEKNIK D LABORATION DATORTEKNIK Y DATORTEKNIK D Avbrottsprogrammering på M68008 Version: 3.2 203 (OVA) Namn och personnummer Godkänd Till laboranten Inledning Syftet med laborationen är först att ge övning i avbrottsprogrammering

Läs mer

Lösningsförslag till Tenta i Mikrodator

Lösningsförslag till Tenta i Mikrodator Lösningsförslag till Tenta i Mikrodator 040117 1. Vilka register finns det i processorn och vad används dessa till? D0 till D7: Dataregister som används för beräkningar A0 till A6: Adressregister som används

Läs mer

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1 Halmstad University School of Information Science, Computer and Electrical Engineering Tomas Nordström, CC-lab TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1 Datum: 2012-05- 23 Tid och plats: 9:00 13:00 i

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #17 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Tallriksmodellen Stackoperationer Element kan endast

Läs mer

Laboration A TSEA57 Datorteknik I

Laboration A TSEA57 Datorteknik I Laboration A TSEA57 Datorteknik I Anders Nilsson 2015 version 1.1 Innehåll 1 Introduktion 5 1.1 Syfte....................................... 5 1.2 Förkunskaper.................................. 5 1.3

Läs mer

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf EDA 451 Digital och datorteknik 2010/2011 Uppbyggnad_och_funktion.pdf Ur innehållet: Bussystem, intern kommunikation i datorsystemet Adressavkodning, hur primärminne och I/O-enheter kan anslutas Olika

Läs mer

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin. 1(5) Övningstentamen i Mikrodatorer och assemblerprogrammering, ELGA05 Hjälpmedel: Bifogad lista med memokoder för MC68xxx. Samtliga programmeringsuppgifter ska innehålla flödesschema med förklaringar

Läs mer

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden Datormodell Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden Intel 4004 från 1971 Maximum clock speed is 740 khz Separate program and data

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #23 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Översikt När flera minnesmoduler placeras i processorns

Läs mer

DBG11 Användarbeskrivning - Utgåva 2

DBG11 Användarbeskrivning - Utgåva 2 Introduktion DBG11 är en monitor/debugger för MC68HC11-baserade mikrodatorer. Denna utgåva har uppdaterats och gäller även MC11 med SP2-uppgradering. DBG11 ingår i en serie likartade monitor/debugger's

Läs mer

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf DAT 015 Maskinorienterad programmering 2010/2011 Uppbyggnad_och_funktion.pdf Ur innehållet: Bussystem, intern kommunikation i datorsystemet Adressavkodning, hur primärminne och I/O-enheter kan anslutas

Läs mer

Grundläggande datavetenskap, 4p

Grundläggande datavetenskap, 4p Grundläggande datavetenskap, 4p Kapitel 2 Datamanipulation, Processorns arbete Utgående från boken Computer Science av: J. Glenn Brookshear 2004-11-09 IT och Medier 1 Innehåll CPU ALU Kontrollenhet Register

Läs mer

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1) 2 n stycken tal från 0 till 2 n 1 F1.2) 9 bitar (512 kombinationer) Talsystem - 2-

Läs mer

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1. Hur många unsigned integers kan man göra med n bitar? Vilket talområde får dessa

Läs mer

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 - Inbyggda system - Analog till digital signal - Utvecklingssystem, målsystem - Labutrustningen - Uppbyggnad av mikrokontroller - Masinkod, assemblerkod

Läs mer

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär: Lösningsförslag för 725G45-tentan 3/11-10 1. Vad menas med Von Neumann-arkitektur? (2p) En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär: Data och instruktioner lagras i samma

Läs mer

Digitala System: Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON Digitala System: Datorteknik ERIK LARSSON Dator Primärminne Instruktioner och data Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction Programexekvering (1)

Läs mer

DBG identifierar därefter sig genom utskrift av namn och version. Se även "Disposition av adressrum" nedan. Följande kommandon accepteras av DBG

DBG identifierar därefter sig genom utskrift av namn och version. Se även Disposition av adressrum nedan. Följande kommandon accepteras av DBG Introduktion DBG12 är en monitor/debugger för MC68HCS12-baserade mikrodatorer. DBG12 ingår i en serie likartade monitor/debugger's för mikrodatorer. För närvarande finns följande varianter: DBG11 DBG12

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #23 Översikt När flera smoduler placeras i processorns adressrum ansluts modulernas adressingångar till motsvarande ledningar i en. Övriga adressledningar i bussen

Läs mer

F5: Högnivåprogrammering

F5: Högnivåprogrammering F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data via

Läs mer

F5: Högnivåprogrammering

F5: Högnivåprogrammering 1 F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data

Läs mer

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte ARM-instruktioner, A4-format, 17 sidor. Maxpoäng: TENTAMEN D1/E1/Mek1/Ö1 1400-1800 Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor Maxpoäng: Betyg 3 Betyg 4 Betyg 5 60p 24p 36p 48p Frågor under tentamen: Börje Delistrand tel. +46702986358 Bilaga

Läs mer

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18 F3 Föreläsning i Mikrodatorteknink 2006-08-29 Kärnan i microcontrollern består av ett antal register och en ALU. Till detta kommer också ett antal portar. Det finns 64 st portar. Några är anslutna mot

Läs mer

Adressavkodning - busskommunikation

Adressavkodning - busskommunikation Adressavkodning - busskommunikation Kompendie kapitel 10 Bussystem adressbuss databuss styrbuss Ur innehållet: Bussystem, intern kommunikation i datorsystemet Adressavkodning, hur primär och I/O-enheter

Läs mer

Datorsystemteknik Föreläsning 7DAVA14

Datorsystemteknik Föreläsning 7DAVA14 Datorsystemteknik Föreläsning 7DAVA14 Innehåll Introduktion (forts) Polling (cyklisk avfrågning) Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Exempel

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #18 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Assemblerprogrammering Assemblatorer vs kompilatorer

Läs mer

2 UPPBYGGNAD OCH FUNKTION

2 UPPBYGGNAD OCH FUNKTION UTKAST 27/9 2010 - Uppbyggnad och funktion 2 UPPBYGGNAD OCH FUNKTION Detta kapitel ägnas åt metoder och principer som används för att bygga upp ett komplett datorsystem bestående av centralenhet, minne

Läs mer

F7: I/O hantering. Asynkron och synkron busscykel 68000 Bussfördelning. Periferikretsar

F7: I/O hantering. Asynkron och synkron busscykel 68000 Bussfördelning. Periferikretsar 1 F7: I/O hantering Periferikretsar ADC, DAC, UART, etc. Databussar Seriella bussar I 2 C USB CAN Systembussar PCI VME Asynkron och synkron busscykel 68000 Bussfördelning 1 Periferikretsar ADC/DAC Räknare

Läs mer

LABORATION. Datorteknik Y

LABORATION. Datorteknik Y LABORATION Datorteknik Y Avbrottsprogrammering på Darma Version 4.03 Februari 2019 (OA, KP) Namn och personnummer Godkänd 1 1 Inledning Syftet med laborationen är först att ge övning i avbrottsprogrammering

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2015-08-18 Lokal TERE, TER4 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 7 Antal sidor (inklusive

Läs mer

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. Lars-Eric Arebrink

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. Lars-Eric Arebrink Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Maskinorienterad programmering PROGRAM: Dataingenjör och elektroingenjör åk 1/ lp 3 Mekatronikingenjör åk 2/

Läs mer

Föreläsningsanteckningar 3. Mikroprogrammering II

Föreläsningsanteckningar 3. Mikroprogrammering II Föreläsningsanteckningar 3. Mikroprogrammering II Olle Seger 2012 Anders Nilsson 2016 1 Inledning Datorn, som vi byggde i förra föreläsningen, har en stor brist. Den saknar I/O. I denna föreläsning kompletterar

Läs mer

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP.

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP. Övningsuppgifter Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP. F.2 Ett antal på varandra följande minnesord har

Läs mer

Avbrottshantering. Övningsuppgifter

Avbrottshantering. Övningsuppgifter Avbrottshantering Övningsuppgifter 2013 Besvara kortfattat följande frågor rörande CPU12. Redogör för vad som händer vid RESET och varför detta sker. Förklara kortfattat vad som händer vid ett IRQ avbrott

Läs mer

DBG identifierar därefter sig genom utskrift av namn och version. Följande kommandon accepteras av DBG. Hantera brytpunkter i användarprogram

DBG identifierar därefter sig genom utskrift av namn och version. Följande kommandon accepteras av DBG. Hantera brytpunkter i användarprogram Introduktion DBG32 är en monitor/debugger för MC683xx-baserade mikrodatorer. DBG32 ingår i en serie likartade monitor/debugger's för mikrodatorer. För närvarande finns följande varianter: DBG11 DBG12 DBG32

Läs mer

Polling (cyklisk avfrågning) Avbrott

Polling (cyklisk avfrågning) Avbrott Polling (cyklisk avfrågning) Avbrott Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Att känna till begreppet polling (cyklisk avfrågning) och hur det

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #8 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Assemblatorer vs kompilatorer En assemblator är ett program

Läs mer

Facit till övningsuppgifter Kapitel 13 Anslutning av minnes- och I/O-moduler till buss 13-1

Facit till övningsuppgifter Kapitel 13 Anslutning av minnes- och I/O-moduler till buss 13-1 Facit till övningsuppgifter Kapitel 13 Anslutning av minnes- och I/O-moduler till buss 13-1 13.1 a) Minneskapseln har 10 st adressledningar, vilket innebär att den har 2 10 = 1024 adresser, var och med

Läs mer

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar Digitalteknik EIT020 Lecture 15: Design av digitala kretsar November 3, 2014 Digitalteknikens kopplingar mot andra områden Mjukvara Hårdvara Datorteknik Kretskonstruktion Digitalteknik Elektronik Figure:,

Läs mer

CPU. Carry/Borrow IX. Programräknare

CPU. Carry/Borrow IX. Programräknare Laboration:. Jämförelser mellan assembler och C. CPU ACCA ACCD ACCB 8-bitars ackumulatorer eller 16- bitars ackumulator CCR 1 1 1 SXH I NZVC Flaggregister Carry/Borrow IX IY PC Indexregister X Indexregister

Läs mer

I DAG fo 4. Printerport v3 med READY o DAV. Avbrott. Hur bra blev det egentligen????

I DAG fo 4. Printerport v3 med READY o DAV. Avbrott. Hur bra blev det egentligen???? Rep Konstruktion av en Printer-Port ynkroniseringsproblem Villkorlig / ovillkorlig överföring Busy Wait och Polling Handskakningssignaler AVBROTT!!! svektor I-flagga svippa sdriven Printerport I DAG fo

Läs mer

BDM12 Användarbeskrivning. Introduktion

BDM12 Användarbeskrivning. Introduktion Versioner/ändringar 1.0 2003-07 1.01 BUGFIX: FLASH unsecure algoritm 1.02 Fördröjning vid flash-prog. Statusutskrift under programmeringen. Programmeringsalgoritmen hanterar nu även 'bankade' minnet. Översättning

Läs mer

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15. Aktivera Kursens mål: LV3 Fo7 Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Konstruktruera olika kombinatoriska nät som ingår i en dator. Studera hur addition/subtraktion

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #17 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola F-36 FLEX- och FLIS-datorn Ext-8 Tallriksmodellen Stackoperationer

Läs mer

Periferikretsar. ADC/DAC Räknare Realtidsklocka Timer Interrupthanterare UART (Universal Asynchronous Reciever and Transmitter) Seriell dataöverföring

Periferikretsar. ADC/DAC Räknare Realtidsklocka Timer Interrupthanterare UART (Universal Asynchronous Reciever and Transmitter) Seriell dataöverföring Periferikretsar ADC, DAC, UART, etc. Databussar Seriella bussar I 2 C USB CAN Systembussar PCI VME F7: I/O hantering Asynkron och synkron busscykel 68000 Bussfördelning 1 Periferikretsar ADC/DAC Räknare

Läs mer

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING 1. INLEDNING 1.1. Milstolpar i datorns historia 1.2. Några viktiga begrepp 1.3. Mikrodatorns användningsområden 2. TALSYSTEM, KODER OCH BINÄR ARITMETK 2.1. Binära

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2016-10-18 Lokal TER1 Tid 8-12 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 7 Antal sidor (inklusive

Läs mer

Assemblerprogrammering del 2

Assemblerprogrammering del 2 Assemblerprogrammering del 2 FLISP och omvärlden Dagens föreläsning behandlar: Kompendiet kapitel 9 Arbetsboken kapitel 16 Ur innehållet: In- och ut-enheter Tilldelningar och uttrycksevaluering Programflödeskontroll

Läs mer

Till assemblersystemet Zuper 80 Assembler krävs en SPECTRAVIDEO 328/318+minst 16K ram extra.

Till assemblersystemet Zuper 80 Assembler krävs en SPECTRAVIDEO 328/318+minst 16K ram extra. ZZZZZ 888 000 A Z 8 8 0 0 A A ZZ 8 8 0 0 A A ZZ u u pppp eee r rrr 888 0 0 AAAAA ZZ u u p p e e rr --- 8 8 0 0 A A ZZ u u p p e ee r 8 8 0 0 A A Z u u p p e r 8 8 0 0 A A ZZZZZ uuuu pppp eeee r 888 000

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #15 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Dataväg med pekarregister och stackpekare: I vår sjunde,

Läs mer

HF0010. Introduktionskurs i datateknik 1,5 hp

HF0010. Introduktionskurs i datateknik 1,5 hp HF0010 Introduktionskurs i datateknik 1,5 hp Välkommna - till KTH, Haninge, Datateknik, kursen och till första steget mot att bli programmerare! Er lärare och kursansvarig: Nicklas Brandefelt, bfelt@kth.se

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2015-06-01 Lokal Tid 14-18 Kurskod Provkod Kursnamn Provnamn Institution Antal frågor 6 Antal sidor (inklusive denna sida) 6 Kursansvarig Lärare som besöker skrivsalen

Läs mer

Föreläsningsanteckningar till Konstruktionsmetoder 981027

Föreläsningsanteckningar till Konstruktionsmetoder 981027 Föreläsningsanteckningar till Konstruktionsmetoder 981027 Jämförelse mellan 68705P3 och 16F84 externt MC68705P3 PIC16F84 I/O 20 13 Kapsling 28-pin DIL 18-pin DIL Drivförmåga på pinnar PortB 10mA Sink,

Läs mer

Institutionen för elektro- och informationsteknologi, LTH

Institutionen för elektro- och informationsteknologi, LTH Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd

Läs mer

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH. Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Torsdagen den 13 mars 2014, klockan 14:00 19:00 i MA:10. Tillåtna hjälpmedel: på tentan utdelad formelsamling,

Läs mer

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet.

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet. Datorteknik Tomas Nordström Föreläsning 2 För utveckling av verksamhet, produkter och livskvalitet. Föreläsning 2 Check av övningar Von Neumann arkitekturen Minne, CPU, I/O Instruktioner och instruktionscykeln

Läs mer

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Lunds Universitet LTH Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Skrivtid: 8.00-13.00 Inga tillåtna hjälpmedel Uppgifterna i tentamen ger maximalt 60 poäng. Uppgifterna är

Läs mer

Adressrum, programmerarens bild

Adressrum, programmerarens bild EDA 480 2009/2010 MC68HC12, Uppbyggnad.pdf Ur innehållet: Datorns byggblock Busskommunikation Synkron buss Asynkron buss Multiplex-buss avkodning för minne och I/O Minnesavbildad I/O Direktadresserad I/O

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2016-05-31 Lokal Kåra, T1, T2, U1, U15 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Översikt Processorn Maskininstruktioner Dator Primärminne Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction

Läs mer

Tentamen i EIT070 Datorteknik

Tentamen i EIT070 Datorteknik Tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 10 mars 2010, klockan 08:00 13:00 å Victoriastadion 1 och 2. Tillåtna hjälpmedel: på tentan utdelad formelsamling,

Läs mer

Assemblerprogrammering del 1

Assemblerprogrammering del 1 Assemblerprogrammering del 1 Dagens föreläsning behandlar: Kompendiet kapitel 9 Arbetsboken kapitel 15 Ur innehållet: Assemblerspråket Programmerarens bild Assemblering/disassemblering Funktion: Översätter

Läs mer

DBG identifierar därefter sig genom utskrift av namn och version. Se även "Disposition av adressrum" nedan. Följande kommandon accepteras av DBG

DBG identifierar därefter sig genom utskrift av namn och version. Se även Disposition av adressrum nedan. Följande kommandon accepteras av DBG Introduktion DBG12 är en monitor/debugger för MC68HCS12-baserade mikrodatorer. DBG12 ingår i en serie likartade monitor/debugger's för mikrodatorer. För närvarande finns följande varianter: DBG11 DBG12

Läs mer

Maskinorienterad programmering

Maskinorienterad programmering Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Maskinorienterad programmering PROGRAM: Dataingenjör och elektroingenjör åk 1/ lp 3 Mekatronikingenjör åk 2/

Läs mer

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Rahim Rahmani (rahim@dsv.su.se) Division of ACT Department of Computer and Systems Sciences Stockholm University SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Tentamensdatum: 2013-03-21 Tentamen består av totalt

Läs mer

Uppgift 1: a) u= a c + a bc+ ab d +b cd

Uppgift 1: a) u= a c + a bc+ ab d +b cd Uppgift 1: a) u= a c a bc ab d b cd b) a b c d u 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2015-10-20 Lokal TERE, TER2 Tid 8-12 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal sidor (inklusive

Läs mer

3. Mikroprogrammering II

3. Mikroprogrammering II 3. Mikroprogrammering II lite repetition in/ut-matning avbrott på OR-datorn hoppinstruktion labben Olle Roos dator LDA 000 12 ADD 100 7 STA 000 13 12 1 13 8 13 6 8 0 18,1,11 2,3,5,11 7,8,11 17,10 18,1,11

Läs mer

Mikroprogrammering I

Mikroprogrammering I ikroprogrammering I Olle Roos-datorn (fö2+) Björn Lindskog-datorn (lab) Att bygga en CPU Pipelinad dator (fö4,lab2) Variabel exekveringstid Variabelt format Inget överlapp Central styrenhet, som är mikroprogrammerad

Läs mer

F6: I/O hantering. Typer av I/O i ett datorsystem. Protokoll för synkronisering. Drivrutiner. Memory mapped Port mapped. Polling Timed Interrupt DMA

F6: I/O hantering. Typer av I/O i ett datorsystem. Protokoll för synkronisering. Drivrutiner. Memory mapped Port mapped. Polling Timed Interrupt DMA F6: I/O hantering Typer av I/O i ett datorsystem Memory mapped Port mapped Protokoll för synkronisering Polling Timed Interrupt DMA Drivrutiner 1 Memory mapped I/O enheter avkodas precis som ett minne

Läs mer

Styrenheten 9/17/2011. Styrenheten - forts Arb s 120. LV4 Fo10. Aktivera Kursens mål: Kap 7 Blå

Styrenheten 9/17/2011. Styrenheten - forts Arb s 120. LV4 Fo10. Aktivera Kursens mål: Kap 7 Blå Aktivera Kursens mål: LV4 Fo10 Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Koppla samman register och ALU till en dataväg Minnets uppbyggnad och anslutning till datavägen

Läs mer

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien DIGITAL- OCH MIKRODATORTEKNIK, U2 09.00 13.00 Tillåtna hjälpmedel: Instruktionslista PIC16F877A Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien Fullständiga lösningar skall inlämnas.

Läs mer

Labyrintspelet EDI021 Grupp 5

Labyrintspelet EDI021 Grupp 5 Labyrintspelet EDI021 Grupp 5 Kristian Sylwander d04ks@student.lth.se Emil Wasberger d03ew@student.lth.se Michael Winberg d04mwi@student.lth.se 16 maj 2008 1 Inledning Syftet med kursen EDI021 är att bygga

Läs mer

Ansvarig lärare: Olof Andersson, Telefon 021-101314 (besöker skrivsalen)

Ansvarig lärare: Olof Andersson, Telefon 021-101314 (besöker skrivsalen) MÄLRLENS HÖGSKOL Institutionen för elektroteknik Tentamen Mikrodatorteknik T3760 atum 2005-10-28 Tid 08.30 12.30 nsvarig lärare: Olof ndersson, Telefon 021-101314 (besöker skrivsalen) Om du klarat samtliga

Läs mer

LV6 LV7. Aktivera Kursens mål:

LV6 LV7. Aktivera Kursens mål: Aktivera Kursens mål: LV6 LV7 Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Konstruktruera olika kombinatoriska nät som ingår i en dator. Studera hur addition/subtraktion

Läs mer

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte" ARM-instruktioner", A4-format, 17 sidor. Maxpoäng: 60p

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte ARM-instruktioner, A4-format, 17 sidor. Maxpoäng: 60p TENTAMEN D1/E1/Mek1/Ö1 0900-1300 Hjälpmedel: Häfte" ARM-instruktioner", A4-format, 17 sidor Maxpoäng: Betyg 3 Betyg 4 Betyg 5 60p 24p 36p 48p Frågor under tentamen: Bör j e Delistrand tel. 16 7122 alt.

Läs mer

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data. 1 3 4 Antag a' processorn ska exekvera instruk3onen ADD R1, R3. När instruk3onen är exekverad så a' processorn tagit innehållet i R1 och R3 och med hjälp av ALU:n är värdena adderade och resultatet är

Läs mer

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data. 1 2 3 Antag a' processorn ska exekvera instruk3onen ADD R1, R3. När instruk3onen är exekverad så a' processorn tagit innehållet i R1 och R3 och med hjälp av ALU:n är värdena adderade och resultatet är

Läs mer

Styrteknik: MELSEC FX och numeriska värden

Styrteknik: MELSEC FX och numeriska värden PLC2C:1 MELSEC FX I kursen styrteknik används styrsystemet FX1S som är ett litet system i MELSEC FX-serien. Vår version av FX1S har endast digitala in- och utgångar men oftast finns det både digitala och

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2017-08-15 Lokal TER4 Tid 14-18 Kurskod Provkod Kursnamn Provnamn Institution Antal frågor 6 Antal sidor (inklusive denna sida) 6 Kursansvarig Lärare som besöker skrivsalen

Läs mer

Föreläsningsanteckningar 2. Mikroprogrammering I

Föreläsningsanteckningar 2. Mikroprogrammering I Föreläsningsanteckningar 2. Mikroprogrammering I Olle Seger 2012 Anders Nilsson 2016 Innehåll 1 Inledning 2 2 En enkel dator 2 3 Komponenter 3 3.1 Register............................... 3 3.2 Universalräknare..........................

Läs mer

Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas

Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas 1 2 Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas och instruk7onen exekveras. 3 4 Program kan beskrivas

Läs mer

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion. F5 Föreläsning i Mikrodatorteknink 2006-09-05 Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion. Programräknaren

Läs mer

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28 Tentamen Datorteknik Y, TSEA28 Datum 2016-08-16 Lokal TER2, TER4 Tid 14-18 Kurskod TSEA28 Provkod TEN1 Kursnamn Provnamn Datorteknik Y Skriftlig tentamen Institution ISY Antal frågor 6 Antal sidor (inklusive

Läs mer

Läsminne Read Only Memory ROM

Läsminne Read Only Memory ROM Läsminne Read Only Memory ROM Ett läsminne har addressingångar och datautgångar Med m addresslinjer kan man accessa 2 m olika minnesadresser På varje address finns det ett dataord på n bitar Oftast har

Läs mer

LABORATION. Datorteknik Y

LABORATION. Datorteknik Y LABORATION Datorteknik Y Avbrottsprogrammering på Darma Version 4.02 Februari 2018 (OA, KP) Namn och personnummer Godkänd 1 1 Inledning Syftet med laborationen är först att ge övning i avbrottsprogrammering

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Tentamen Datorteknik D del 2, TSEA49

Tentamen Datorteknik D del 2, TSEA49 Tentamen Datorteknik D del 2, TSEA49 Datum 2012-05-24 Lokal TER2 Tid 8-12 Kurskod TSEA49 Provkod TEN1 Kursnamn Datorteknik D del 2 Institution ISY Antal frågor 6 Antal sidor (inklusive denna 10 sida) Kursansvarig

Läs mer

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte CT3760 Mikrodatorteknik Föreläsning 4 Tisdag 2005-09-06 Stacken I datasammmanhang är en stack ett minnesområde. Det är processorn som använder stacken. För att skapa en stack anger man en adress i stackpekarregistret.

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 13 mars 2013, klockan 14:00 19:00 i Vic 2 A-D, 3 A-C. Tillåtna hjälpmedel: på tentan utdelad

Läs mer

Assemblerprogrammering del 3

Assemblerprogrammering del 3 Assemblerprogrammering del 3 Dagens föreläsning behandlar: Kompendiet kapitel 9 och 10.4 Arbetsboken kapitel 16 Ur innehållet: Modularisering, subrutiner och strukturerad programutveckling (flödesdiagram)

Läs mer

Laboration nr 3 behandlar

Laboration nr 3 behandlar (2013-04-20) Laboration nr 3 behandlar Konstruktion och test av instruktioner (styrsignalsekvenser) för FLISP Följande uppgifter ur Arbetsbok för DigiFlisp ska vara utförda som förberedelse för laborationen.

Läs mer