Assemblerprogrammering del 1

Relevanta dokument
Programmering i maskinspråk (Maskinassemblering)

Programmering i maskinspråk (Maskinassemblering)

EDA Digital och Datorteknik

Digital- och datorteknik

Assemblerprogrammering del 2

Digital- och datorteknik

Digital- och datorteknik

Assemblerprogrammering del 3

Digital- och datorteknik

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

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

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

Tentamen. EDA432 Digital och datorteknik IT INN790 Digital och datorteknik GU. Måndag 23 oktober 2006, kl i V-salar

Föreläsning 2. Operativsystem och programmering

LEU240 Mikrodatorsystem

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

Digital- och datorteknik

Assemblerprogrammeringsuppgifter för FLIS-processorn

Digital- och datorteknik. Lars-Eric Arebrink. Betyg 4: 36 poäng Betyg 5: 48 poäng

Maskinorienterad Programmering IT2, LP2-2016/2017

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

Digital- och datorteknik. Mekatronik-, data- och elektroingenjör Åk 1/ lp 1o2. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen

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

Laboration nr 3 behandlar

Assemblerprogrammering, ARM-Cortex M4 del 1

Maskinorienterad Programmering LP2-2017/2018

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

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

Kontrollskrivning Mikrodatorteknik CDT S2-704

Digital- och datorteknik

Grundläggande datorteknik

TENTAMEN(Nu anpassad till FLIS- processorn)

Maskinorienterad programmering

Maskinorienterad programmering

Digital- och datorteknik. Lars-Eric Arebrink. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

Digital- och datorteknik. Lars-Eric Arebrink. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen.

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

CPU. Carry/Borrow IX. Programräknare

Centralenheten: ALU, dataväg och minne

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

Digital- och datorteknik. Lars-Eric Arebrink. Betyg 4: 36 poäng Betyg 5: 48 poäng

Exempel på tentamen 1

Assemblerprogrammets struktur; exempel

Introduktion till programmering och Python Grundkurs i programmering med Python

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

Digital- och datorteknik

Digital- och datorteknik

TENTAMEN (Något redigerad)

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Assemblerprogrammering för ARM del 1

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

CE_O3. Nios II. Inför lab nios2time

Laborationer med MC12 ML4 Grundläggande assemblerprogrammering

Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?

Maskinorienterad Programmering 2010/11

Under hela detta avsnitt arbetar eleven självständigt med att bygga upp ett komplett applikationsprogram för att styra en liten borrmaskin.

Stack och subrutiner Programmeringskonventionen

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

Styrenheten styrsignalsekvenser programflödeskontroll

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

TENTAMEN. Digital- och datorteknik. Institutionen för data- och informationsteknik Avdelningen för datorteknik LEU431. Lars-Eric Arebrink

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH

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

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

Digital- och datorteknik. Lars-Eric Arebrink. Av institutionen utgiven instruktionlista FLEXIBLE INSTRUKTION SET PROCESSOR FLISP

Digital- och datorteknik

Datorsystemteknik DAVA14 Föreläsning 10

Assemblerprogrammering för HCS12

Assemblerprogrammets. struktur; exempel

Tentamen. EDA485 Maskinorienterad programmering Z DAT015 Maskinorienterad programmering IT. Tisdag xx yyyy 2006, kl

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

Imperativ programmering. Föreläsning 2

TENTAMEN. Digital- och datorteknik E. Institutionen för data- och informationsteknik Avdelningen för datorteknik. Elektro Åk 1/ lp 4 EDA216/DIT790

Exempel 3 på Tentamen

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.

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

Tentamen med lösningsförslag

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

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

Laboration 3 i Digital- och Mikrodatorteknik. Utvecklingssystemet MPLAB IDE Grundläggande assemblerprogrammering för PIC

F5: Högnivåprogrammering

Exempel 2 på Tentamen med lösningar

F5: Högnivåprogrammering

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf

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

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

Minnen delas in i två huvudgrupper, permanenta och icke permanenta. Non-volatile and volatile.

Maskinorienterad Programmering LP3-2017/2018

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Digital- och datorteknik

Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

Programmering av inbyggda system 2014/2015

LABORATION. Datorteknik Y

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

Maskinorienterad programmering

Laborationer med MC11 ML4 Grundläggande assemblerprogrammering

Avbrottshantering. Övningsuppgifter

Transkript:

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 program skrivet i ett högnivåspråk till ett assemblerprogram Översätter program skrivet i ett assemblerspråk till ett maskinprogram för given dator Utför vad som specificeras i programmet. Överblick och motivation Kompilator Assemblerare Dator t. ex. FLISP Gränssnitt: Högnivåspråk t. ex. Java, C Assemblerspråk 1-1 avbildning till maskinspråk för given dator Maskinspråk ettor och nollor 1 2 Assemblerprogrammering Processen att översätta ett assemblerprogram till ett program i maskinspråk kallas att assemblera (från engelskans 'assembly', sätta samman, dvs. sätta ihop ett program utav en sekvens instruktioner). Den omvända processen, att "dissassemblera" (engelskans 'disassembly', 'plocka i sär') är således att utgå från ett komplett maskinprogram, dvs. ettor och nollor, och dela upp detta i sekvenser av assemblerinstruktioner. Assemblerspråket står alltså i 1-1 -förhållande till maskinspråket och är därför unikt för en speciell centralenhet (processor). Assemblerprogrammets struktur Källtexten är radorienterad..utöver detta är formatteringen godtycklig 3 4

Symboler Symbolreferenser Varje symbolnamn måste väljas unikt dvs, får bara definieras en gång i programmet. Symbolnamnet får vara högst 128 tecken långt. Symbolens första tecken måste vara en bokstav (a-z eller A-Z) eller en understrykning, därefter kan symbolnamnet dessutom innehålla något av tecknen. "punkt" eller $ "dollartecken". Observera att de svenska tecknen å,ä och ö inte får användas i symbolnamn. Små respektive stora bokstäver betraktas som olika i symbolnamn. En symbol kan refereras hur många gånger som helst. Ofta, dock inte alltid, används symboler för att ange ett läge (label) dvs. en adress i assemblerprogrammet. Om symbolens absoluta adress är godtycklig sägs den vara relokerbar. 5 6 Talprefix Absoluta symboler Konstanter som anges med binär eller hexadecimal talbas föregås av ett prefix. Inget prefix används för att ange konstanter i det decimala talsystemet. Absoluta symboler kan definieras med assemblerdirektivet EQU (equate). Innebörden är att symbolen ges ett värde som sedan inte ändras. Exempel: 11 = %1011 = $B 7 8

Uttryck Uttryck kan sättas samman av konstanter (absoluta symboler) och operatorer. Aritmetik Bitvis logik Skift Relation Logik Assemblerdirektiv ORG <Val> ORIGIN : Anger startadress för påföljande kod/data. Om en symbol används för att ange startadressen måste symbolen vara definierad, dvs inga framåtreferenser är tillåtna här. Sym EQU <Val> EQUATE : Symbolen Sym representerar värdet <Val>. [Sym] FCB <Val>,<Val>... FORM CONSTANT BYTE : Skapar en sträng med initierade data i minnet I detta fall kan ett symbolnamn anges, men det är inte nödvändigt. [Sym] FCS <ASCII tecken> FORM CONSTANT STRING": Skapar en sträng med ASCII-tecken i minnet. Symbolnamn kan, men behöver inte, anges. [Sym] RMB <Val> RESERVE MEMORY BYTES : Reservera <Val> bytes i minnet. Minnesinnehållet på dessa adresser är odefinierat. Symbolnamn kan, men behöver inte, anges. 9 10 Statisk allokering av minne Programmeringsmodell för FLISP 11 12

Instruktionsuppsättningen FLISP En betraktelse av processorns instruktionslista visar att merparten av instruktionerna tillhör någon av följande kategorier: datakopiering databearbetning, (aritmetik- och logik- operationer) jämförelser och tester programflödesändring De två första används för att forma sekvenser, dvs göra tilldelningar och beräkna uttryck. De två sista används huvudsakligen för att uttrycka selektioner och iterationer dvs. skapa villkorliga och ovillkorliga programflöden. 13 14 Assemblering assemblerkod till maskinkod Exempel Feltryck i arbetsboken här, RTN ska vara: X stop CC Vi löser på tavlan 1 2 3 15 16

Disassemblering maskinkod till assemblerkod Exempel Vi löser på tavlan 1 2 3 17 18 Assemblering Källtext assembleras, symboliska adresser bestäms, mnemonics översätts till maskinkod. Resultatet är en bild av program/minne färdig att överföras till FLISP simulator (.S19), eller laborationssystem (.HWFLISP) samt en listfil (.LST) ETERM programutveckling för FLISP.S19 ETERM är avsett för programutveckling i assemblerspråk och innehåller därför funktioner för:.sflisp fil absolutassemblator.hwflisp Textredigering programmet skrivs i form av källtext, dvs. en textfil som innehåller instruktioner och direktiv till assemblatorn. Assemblering då programmet är färdigt översätts det till maskinkod innan det kan testas i en måldator eller simulator..lst Test i en laddfil finns programmet representerat på en form som kan överföras till simulatorer och laborationsutrustning där det nu kan testas. 19 20