Assemblerprogrammering del 2

Relevanta dokument
Digital- och datorteknik

EDA Digital och Datorteknik

Assemblerprogrammering del 1

Digital- och datorteknik

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

Digital- och datorteknik

Assemblerprogrammering del 3

Assemblerprogrammering för ARM del 2

Exempel 3 på Tentamen

Programmering i maskinspråk (Maskinassemblering)

Styrenheten styrsignalsekvenser programflödeskontroll

Assemblerprogrammering för ARM del 1

Assemblerprogrammering för ARM del 1

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

9 Assemblerprogrammering. Innehåll GRUNDLÄGGANDE DATORTEKNIK FÖR HÖGSKOLANS INGENJÖRSUTBILDNINGAR KOMPENDIUM

Digital- och datorteknik

Programexempel för FLEX

Centralenheten: ALU, dataväg och minne

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

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

Assemblerprogrammering, ARM-Cortex M4 del 1

Digital- och datorteknik

Exempel 1 på Tentamen med lösningar

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

Adressavkodning - busskommunikation

Exempel 2 på Tentamen med lösningar

Programmering i maskinspråk (Maskinassemblering)

Assemblerprogrammering, ARM-Cortex M4 del 3

Assemblerprogrammets struktur; exempel

Lösningsförslag tenta

Maskinorienterad Programmering 2010/11

Digital- och datorteknik

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

Tentamen 3. EDAxxx Grundläggande Datorteknik DIT791 Grundläggande Datorteknik, GU. Måndag xx Oktober 20xx, kl

Digital elektronik CL0090

Tentamen. EDA452 Grundläggande Datorteknik, D DIT790 Digital- och datorteknik, GU. Måndag 17 December 2012, kl

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Assemblerprogrammets. struktur; exempel

Laboration nr 4 behandlar Assemblerprogrammering

Assemblerprogrammering för ARM del 3

Parameteröverföring. Exempel. Exempel. Metodkropp

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

Tentamen med lösningar

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

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Grundläggande datavetenskap, 4p

Enkla datatyper minne

Extrauppgifter för CPU12

Klassdeklaration. Metoddeklaration. Parameteröverföring

Assemblerprogrammering för ARM del 1

Assemblerprogrammering för HCS12

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

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik

Kontrollskrivning Mikrodatorteknik CDT S2-704

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

Digital- och datorteknik

Tentamen. Datorteknik Y, TSEA28

Maskinorienterad Programmering IT2, LP2-2016/2017

Digital- och datorteknik

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

CPU. Carry/Borrow IX. Programräknare

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Onsdag 12 Januari 2011, kl

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

Datorsystemteknik DAV A14 Föreläsning 1

9/22/2012. Assemblernivå Beskrivning av funktion Automatiskt styrd borrmaskin Positionera borr Starta borr Borra genom arbetsstycke...

TDIU01 - Programmering i C++, grundkurs

I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal.

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

Reducerad INSTRUKTIONSLISTA för FLIS-processorn

Assemblerprogrammeringsuppgifter för FLIS-processorn

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

Omgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem.

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

CHALMERS TEKNISKA HÖGSKOLA

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

Programmering A. Johan Eliasson

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

Översikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

CE_O3. Nios II. Inför lab nios2time

Programallokering. Programtyper. Att placera program i flashrespektive. Program i FLASH-minne. Program i RAM-minne

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

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

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Arbetsbok för MD407. Göteborg i oktober 2017, Roger Johansson

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

Maskinorienterad programmering

Tentamen. Datorteknik Y, TSEA28

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

Introduktion till ARM Cortex-M4

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

Dagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler

Programmerbar logik. Kapitel 4

Att använda pekare i. C-kod

Tentamen. EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU. Måndag 18 Oktober 2010, kl

Tentamen. Datorteknik Y, TSEA28

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning.

EDA451 - Digital och Datorteknik 2009/2010. EDA Digital och Datorteknik

Hantering av textsträngar och talsträngar. William Sandqvist

Transkript:

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 Adressbuss Periferienheter 1 2 Periferienheter Parallell utmatning Enhet som ansluts till centralenhetens buss-system kallas periferienhet. För varje periferienhet finns ett gränssnitt för in- och ut-matning (IOinterface) Adressbuss Gräns-snitt Gränssnitt Minnessystem Periferienheter Logik LD Data Register OE 0 IO Interface (Ut-port) Typisk tillämpning PÅ/AV LED (Light Emitting Diode) AV PÅ 3 4

Parallell inmatning Typisk tillämpning: Avläs PÅ/AV FLISP - Minnesdisposition 0 5V Logik OE Data Register LD IO Interface (In-port) PÅ AV 5 6 Port FB - Avkodningslogik Port FC - Avkodningslogik A 0 A 0 1 A 1 A 2 A 3 A 4 A 5 1 FB UT FB IN A 1 A 2 A 3 A 4 A 5 1 FC UT FC IN A 6 A 6 A 7 A 7 MR MR 7 8

FLISP - Realisering Periferikretsar D0 A0 D1 A1 A2 A3 A4 A5 A6 A7 MR CPU Logik D0 A0 D1 A1 A2 A3 A4 A5 A6 A7 MR CE MINNE STA $FB Adressbuss Port FB Port FC LDA $FB 9 10 Utenheter - sifferindikatorer 7-segment 2 7-segment: Två hexadecimala siffror MSN Most significant nibble LSN Least significant nibble EXEMPEL Rinnande ljus Källtext Laddfil för simulator och laborationssystem skapas vid assemblering b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 Listfil - skapas vid assembleringen 11 12

Datatyper globala variabler En variabeldeklaration används för att reservera minnesutrymme. Deklarationen anger ett unikt symbolnamn med en distinkt datatyp. char är en beteckning på en datatyp i programspråket C. Unsigned respektive signed är så kallade typspecifierare som anger typens talområde. Tilldelningar load/store -instruktioner 13 14 Vektorer EXEMPEL: Referens av vektorer, konstant index char char_array[4]; char init_array[4] = {1,2,3,4}; 20 15 16

Referens av vektorer, evaluerat index EXEMPEL: Tabelluppslagning char ascii_table[]={'0','1','2','3','4','5','6','7','8','9'}; ascii_table: FCB '0','1','2','3','4','5','6','7','8','9 Låt oss nu anta register A innehåller ett binärt värde, 0 t.o.m 9. Vi vill ersätta värdet i A med dess motsvarande ASCII-värde. Det kan göras med följande sekvens: LDX #ascii_table ; startadressen till tabellen laddas till X LDA A,X ; värdet i A adderas till X, ; bildar ny adress till ett tecken i tabellen ; detta tecken laddas till A 17 18 Uttrycksevaluering Ett uttryck sätts samman av konstanter, variabler och operatorer. Resultatet av ett uttryck är alltid ett värde (evaluerat uttryck) som antingen kan användas för att tilldelas någon variabel eller användas som test för någon villkorlig operation. Exempel på FLISP-instruktioner för uttrycksevaluering: ADDA, SUBA, ANDA, ORA, EORA, COMA, NEGA Exempel: Symboler i flödesgrafen 19 20

Programflödeskontroll EXEMPEL: Ovillkorlig programflödesändring Villkorlig programflödesändring Ovillkorlig programflödesändring 21 22 Instruktioner för villkorlig programflödesändring EXEMPEL: Villkorlig programflödesändring 23 24

Komplementära villkor EXEMPEL: arbetsbokens uppgift 16.9 25 26 Linjärisera koden ; Symbolfält Mnemonic/ direktiv Operand DisplaySegE: LDX #Segmentkod DisplaySegE_1: LDA DIPSWITCH CMPA #$A BCS DisplaySegE_2 LDA #SEG_ERROR BRA DisplaySegE_3 DisplaySegE_2: LDA A,X DisplaySegE_3: STA SEGMENT7 BRA DisplaySegE_1 27