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

Relevanta dokument
Grundläggande datavetenskap, 4p

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

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

LV6 LV7. Aktivera Kursens mål:

Lösningsförslag till Tenta i Mikrodator

Övningsuppgifter i Mikrodatorteknik 4p/5p

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Tentamen. Datorteknik Y, TSEA28

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

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

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

F5: Högnivåprogrammering

ALU:n ska anslutas hur då?

F5: Högnivåprogrammering

Föreläsningsanteckningar 2. Mikroprogrammering I

Tentamen. Datorteknik Y, TSEA28

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

Lösningsförslag till Tenta i Mikrodator

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Datorsystemteknik DVGA03 Föreläsning 8

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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

Exempeltentamen Datorteknik, EIT070,

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Digital- och datorteknik

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.

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Program Datorteknik. Kontrollenhet. Exekvering av en instruktion. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk.

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Datorteknik ERIK LARSSON

Tentamen. Datorteknik Y, TSEA28

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål

Digitala System: Datorteknik ERIK LARSSON

Tentamen. Datorteknik Y, TSEA28

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

Datorarkitekturer med operativsystem ERIK LARSSON

Närliggande allokering Datorteknik

F8: Undantagshantering

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Läsminne Read Only Memory ROM

TSEA28 Datorteknik Y (och U)

Mikroprogrammering I

HF0010. Introduktionskurs i datateknik 1,5 hp

Tentamen. Datorteknik Y, TSEA28

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Tentamen. Datorteknik Y, TSEA28

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

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 2. Programmering i C och assembler MIPS instruktionsarkitektur. Institutionen för elektro- och informationsteknologi, LTH

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.

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Föreläsning 2. Operativsystem och programmering

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

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

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

Design av digitala kretsar

Mål. Datorteknik. Innehåll. Vad händer med en add-instruktion? Vad händer med en add-instruktion. Instruktioner som bitmönster i minnet

Digital- och datorteknik

F4: Assemblerprogrammering

Digital- och datorteknik

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

Digital- och datorteknik

Tentamen den 18 mars svar Datorteknik, EIT070

Extra lab. Nu på fredag kl 8-12 Frivillig Enbart hjälp med projektuppgiften Ingen examination

LABORATION DATORTEKNIK Y,C,I DATORTEKNIK D

IT för personligt arbete F5

CPU. Carry/Borrow IX. Programräknare

LABORATION DATORTEKNIK D. Pipelining. Namn och personnummer. Version: (OS,OVA,AN)

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

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

Datorsystem. Exempeltentamen

Datorteknik ERIK LARSSON

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

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

Minnets komponenter. Digitala System: Datorteknik. Programexekvering. Programexekvering. Enhet för utdata. Enhet för indata CPU.

EDA Digital och Datorteknik

Intel Pentium. Intel khz. 32 million 2600MHz. Copyright 2005 Benny Thörnberg, Mattias O Nils

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Tentamen Datorteknik Y, TSEA28 Datum

Föreläsning 1: Intro till kursen och programmering

Pipelining i Intel Pentium II

Tentamen Datorteknik D del 2, TSEA49

Digitalteknik och Datorarkitektur 5hp

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

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Målsättning med kursen

Datorsystemteknik DAV A14 Föreläsning 1

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

Laboration nr 3 behandlar

LABORATION. Datorkonstruktion D

Transkript:

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

MC68000 Inre arkitektur som är 32-bits (logiskt) Yttre 16 - bit databuss 24 - bit adressbuss, 16 MBytes kan adresseras 2

Exekveringsenhet Arkitektur MC68000 Utför logiska/aritmetiska operationer Minnesenhet, registerarea Kontrollenhet Översätter instruktionerna till handling Bussenhet Kontrollerar läs/skriv data operationer Hämtar instruktioner från minnet Adress Data Kontroll Bussenhet Kontroll enhet Exekverings enhet 3

68000, Bussenhet 24 - bitars bred adressbuss 16 Mbytes,(1 kbyte = 2 10 bytes, 1 Mbytes = 2 20 bytes) 16 - bitars bred databuss 2 kontrollbussar Asynkron kontroll Synkronisering m.h.a. handskakning Synkron kontroll (MC6800 buss) Emulerar MC6800 buss kontroll Saknar handskakning 4

68000, Exekveringsenhet Består av Register och ALU 16 allmänna register ALU, Arithmetic Logic Unit Denna enhet utför beräkningar och logiska operationer på innehållet i processorns register. En ALU är uppbyggd med digitala grindar som utför aritmetiska operationer Intern data buss Styr signaler ALU Status flaggor Innehåller även osynliga register 5

Register i MC68000 8 - dataregister, D0 - D7 7 - adressregister, A0 - A6 1 - Stackpekare, A7 1 - Condition Code Register, CCR (del av SR) 1 - Programräknare, PC 6

Programräknare PC Pekar vart i minnet den exekverade instruktionen finns Aktuell instruktion ($0034FE) MOVE #34,D2 BEQ #3EF4 MOVE D1,D2 7

CCR Bitarna i registret påverkas av dom olika instruktionerna. Titta i instruktionsmanualen efter hur varje instruktion påverkar varje flagga 8

Exempel på påverkan av CCR 43+26=69 D 107+90=197 D 43-26=17 D 27-90=-63 D Overflow därför att talet 197 ej kan representeras med en byte i 2-komplement 9

Exekvering av 68000 instruktioner Bussenheten laddar IR (Instruction Register), med en ny operations kod. Varje instruktion (operationskod) pekar ut ett litet program (mikro program) i ett µ-rom i processorn. Instruktions avkodaren översätter operationskoden till ett värde på u-kods programräknaren. u-pc pekar på ett mikroprogram som utför instruktionen För varje klockpuls räknar µpc upp och µ-kods ROM:et ger nytt värde (adress) till ett nano-rom. För varje värde klockpuls ger nano-rom:et ut en kombination av styrsignal till alla enheter i CPU:n. 10

Exekvering av mikroprogram/instruktioner IR Instruktions avkodare u-rom Program räknare mikro-rom nano-rom Styr signaler till ALU, Register, Bussenhet Instruktionsräknare 11

12

Exekvering av mikroprogram/instruktioner 13

Vad är maskinkod? Den sekvens av binära koder, som utgör ett program. Mycket svårt att förstå Ex. 111000000000110 Assembler är en översättning av maskinkoden så att människan ska förstå. Ex. MOVEQ #6, D0 (Samma sak som ovan) 14

Programmering i assembler Assembler är en textversion av maskinkoden Högnivåspråk, typ C/C++, Pascal, Fortran osv Samma oberoende av processor. Kompilator Assembler Assemblator Olika för olika processorer Maskinkod 15

68000, Assembler En assemblerinstruktion består av Operationskod Matematiska/ Logiska och dataflyttningsoperationer. Datatyp B = Byte, 8 bit. W = Word, 16 bit. L = Long word, 32 bit. Argument Dataregister Minnesposition Adressregister Osv.. Source Destination MOVE.W D1, (A2) Argument Op.kod Datatyp 16

MOVE MOVE - instruktionen. Kopierar data från ett ställe till ett annat <Source> -> <Destination> Ex. MOVEA MOVE #43, D0 Samma som MOVE men destinationen är ett adressregister. <Source> -> <An> Ex. MOVEA D3, A4 17

Översättning från assembler till maskin kod MOVE.W D6,D2 0011010000000110 18

Adresseringsmetoder Behandlar hur data läses och skrivs i instruktioner Olika metoder Direkt register adressering (Direct register addressing) Direkt data adressering (Immediate addressing) Absolut adressering (Absolute addressing) Indirekt adressering 19

Enklast Direkt register adressering En operand är ett dataregister eller adressregister Dataregister: MOVE D1,D0 källoperand destinationsoperand Adressregister: MOVEA D1,A0 D1 D1 D1 D1 34 D0? 34 D0 34 34 A0? 34 A0 34 MOVE.B D0,D3 SUB.L A0,D3 CMP.W D2,D0 ADD D3,D4 Copy the source operand in register D0 to register D3 Subtract the source operand in register A0 from register D3 Compare the source operand in register D2 with register D0 Add the source operand in register D3 to register D4 20

Direkt adressering Direkt adressering, resulterar i korta instruktioner Eftersom man behöver bara 3 bitar för att definiera ett register. Det är en snabb instruktion Eftersom inget externtminne behöver accessas. Som programmerare bör man använda direkt adressering för att lagra variabler som används ofta i programobjektet. ALU Register Cache-minne Primärminne Sekundärminne 21

Direkt data Operanden är en del av instruktionen # används för att indikera direkt data adressering Till exempel MOVE.B #24,D0 använder direkt data operanden 24. Före Efter D0? D0 24 22

Absolut adressering Kopiera innehållet från/till den specificerade adressen. MOVE.W D0, adr.w MOVE.W D0, adr.l Ex. MOVE.B 24,D0 Före: Efter: D0? D0 33 23 24 25? 33? 24 23 25? 33? 23

Direkt data / Absolut adressering För direkt data och absolut adressering finns data eller adressen till data inbakad i instruktionen. Absolut adressering kräver 2 (3) minnes accesser vid exekvering Exempel 1. Hämta instruktionen 2. Hämta operanden (adressen till operanden) ADD #3,D0 Adderar 3 till D0 ADD 3,D0 Adderar innehållet i minnes position 3 med D0 24

Sammanfattning av grundläggande adressering Studera följande högnivå exempel: Z = Y + 4 Följande kod implementerar funktionen ORG $400 MOVE.B Y,D0 ADD #4,D0 MOVE.B D0,Z Start of code ORG $600 Start of data area Y DC.B 27 Store the constant 27 in memory Z DS.B 1 Reserve a byte for Z 25

Den assemblerade koden 1 00000400 ORG $400 2 00000400 103900000600 MOVE.B Y,D0 3 00000406 06000018 ADD.B #24,D0 4 0000040A 13C000000601 MOVE.B D0,Z 5 00000410 4E722700 STOP #$2700 6 * 7 00000600 ORG $600 8 00000600 1B Y: DC.B 27 9 00000601 00 Z: DS.B 1 10 00000400 END $400 Adress Initiering Maskinkod Assembler 26

Memor y (numeric form) 000400 103900000600 MOVE. B Y, D0 000406 06000018 ADD. B #24, D0 00040A 13C000000601 MOVE. B D0, Z 000410 4E722700 STOP #$2700 000600 1B Y 27 000601 1 Z Memor y (mnemonic form) Y is a variable accessed via the direct address 000600 Z is a variable accessed via the direct address 000601 This is a literal operand stored as part of the instruction 27

Sammanfattning Register direkt adressering används för variabler som kan lagras i register Direkt data adressering används för konstanter Absolut adressering används för variabler som måste lagras i minne eller I/O portar Den enda skillnaden mellan register direkt adressering och absolut adressering är att den första använder ett register för att lagra operanden och den senare använder en minnesposition. 28