Digital och Datorteknik – EDA451 2009/2010 1 Assemblerprogrammering för FLEX EDA 451 - Digital och Datorteknik Dagens föreläsning: Assemblerprogrammering för FLEX, Extra material ”Ext 18” Ur innehållet: Programmerarens bild av FLEX Instruktionsuppsättning Register åtkomliga för programmeraren Datatyper Adresseringssätt Användning av adressrum Minne för program och data In- och ut- matning
40
Embed
EDA 451 - Digital och Datorteknik Dagens föreläsning: Assemblerprogrammering för FLEX,
EDA 451 - Digital och Datorteknik Dagens föreläsning: Assemblerprogrammering för FLEX, Extra material ”Ext 18” Ur innehållet: Programmerarens bild av FLEX Instruktionsuppsättning Register åtkomliga för programmeraren Datatyper Adresseringssätt Användning av adressrum - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Digital och Datorteknik – EDA451 2009/2010
1Assemblerprogrammering för FLEX
EDA 451 - Digital och Datorteknik Dagens föreläsning:
Assemblerprogrammering för FLEX, Extra material ”Ext 18”
Ur innehållet:
Programmerarens bild av FLEX Instruktionsuppsättning Register åtkomliga för programmeraren Datatyper Adresseringssätt
Användning av adressrum Minne för program och data In- och ut- matning
Digital och Datorteknik – EDA451 2009/2010
Programmerarens bild av FLEX
2Assemblerprogrammering för FLEX
Adresseringssätt Inherent Omedelbar Absolut Register relativ Auto pre- increment/decrement Auto post- increment/decrement PC-relativ
Adresseringssätt Inherent Omedelbar Absolut Register relativ Auto pre- increment/decrement Auto post- increment/decrement PC-relativ
State nr RTN-beskrivning Styrsignaler0 PC→MA, PC→T OEPC, LDMA, LDT.1 M+T+1→R, PC+1→PC MR, f3, f1, g0, LDR, IncPC.2 If (Z=0) : R→PC; OER, LDPC=Z’, NF.
Villkorstest, EXECUTE – ”BNE <offset>”
23Styrenhet med fast kopplad logik
Instruktionsformat:OP-kod, PC-rel offset
Operationskod: 5E
BNE Branch Not EqualInstruktion: BNE Adr
RTN: If Z = 0: PC+Offset PC
Flaggor: Påverkas ej.
Beskrivning: Testar Z-flaggans värde. Om Z=0 utförs ett hopp till adressen Adr = PC+Offset. Offset räknas från adressen efter
branchinstruktionen, dvs vid uträkningen av hoppadressen pekar PC på operationskoden direkt efter branchinstruktionen i minnet. Om Z=1 utförs inget hopp. Nästa instruktion blir i så fall den direkt efter branchinstruktionen i minnet.
Programräknare, som här pekar på offset-byten adresserar minnet, placeras också i T-registret för kommande offsetberäkning
Offseten (M), adderas till offsetens adress(T), slutligen läggs 1 till, dvs PC-offseten beräknas från nästa instruktions op-kod, placeras i R
Ny adress (från R) placeras i PC ENDAST om LDPC aktiverats, dvs Z=0 och EXECUTE-fasen avslutas.
Observera att de två första tillstånden är identiska för samtliga villkorliga BRANCH-instruktioner
Skillnaden i EXECUTE-fasen mellan villkorliga BRANCH-instruktioner är flaggtestet
Digital och Datorteknik – EDA451 2009/2010
Villkorstest
24Styrenhet med fast kopplad logik
Instruktionsuppsättningen för FLEX-processorn har ett antal villkorliga hoppinstruktioner. De kan indelas i följande tre grupper:
1. Enkla villkor. Test av ett 8-bitars tal. Vid de enkla villkorliga hoppen testas innehållet i en av flaggvipporna N, Z, V eller C och hoppet utförs om villkoret är uppfyllt, dvs den aktuella flaggvippans värde, är 0 resp 1.
2. Villkor för tal utan inbyggt tecken. Jämförelse mellan två 8-bitars tal som tillhör intervallet [0, 255]. Flaggor C och Z används här.
3. Villkor för tal med inbyggt tecken. (2-komplementform)Jämförelse mellan två 8-bitars tal som tillhör intervallet [-128,127]. Flaggor N, V och Z används här.
Digital och Datorteknik – EDA451 2009/2010
Enkla villkor
25Styrenhet med fast kopplad logik
Instruktion Operation Flagg-villkor
BEQ (Branch on Equal) Om ’P’ är 0 Z=1
BNE (Branch if Not Equal) Om ’P’ är skilt från 0
Z=0
BMI (Branch on Minus) Om ’P’ är mindre än 0
N=1
BPL (Branch on Plus) Om ’P’ är större eller lika med 0
N=0
Antag att ett tal ’P’ har testats, och flaggorna påverkats av testinstruktionen
Digital och Datorteknik – EDA451 2009/2010
Villkor, tal utan tecken
26Styrenhet med fast kopplad logik
Instruktion Operation Flaggvillkor
BLO (Branch if LOwer) ävenBCS (Branch if Carry Set)
Om ’P’ är mindre än ’Q’ C=1
BLS (Branch if Lower or Same) Om ’P’ är mindre än ’Q’ eller ’P’ är lika med ’Q’.
C=1 eller Z=1
BHI (Branch if Higher) Om ’P’ är större än ’Q’ C=0 och Z=0
BHS (Branch if Higher or Same) även BCC (Branch if Carry Clear)
Om ’P’ är större än ’Q’ eller ’P’ är lika med ’Q’.
C=0
Vi tolkar ’P’ och ’Q’ som tal utan tecken.Antag att en jämförelse utförts enligt ’P’ – ’Q’ → (Z,C), (flaggorna Z och C påverkats av instruktionen)
Digital och Datorteknik – EDA451 2009/2010
Villkor, tal med tecken
27Styrenhet med fast kopplad logik
Vi tolkar’P’ och ’Q’ som tal med tecken.Antag att en jämförelse utförts enligt ’P’ – ’Q’ → (N,Z,V), (flaggorna påverkats av instruktionen)
Instruktion Operation Flaggvillkor
BLT (Branch if Less Than) Om ’P’ är mindre än ’Q’ NV =1
BLE (Branch if Less than or Equal) Om ’P’ är mindre än ’Q’ eller ’P’ är lika med ’Q’
NV =1 ellerZ=1
BGT (Branch if Greater Than) Om ’P’ är större än ’Q’ NV =0 ellerZ=0
BGE (Branch if Greater or Equal) Om ’P’ är större än ’Q’ eller ’P’ är lika med ’Q’
NV =0
Digital och Datorteknik – EDA451 2009/2010
FLEX- simulator
28Assemblerprogrammering för FLEX
Minne för program och data
Digital och Datorteknik – EDA451 2009/2010
FLEX och omvärlden
29Assemblerprogrammering för FLEX
MR
MW
Adressbuss
1OEX
Reg XLDX
CP S
1
LDS
OES
CP
1
LDPC
OEPC
CPPC
1OER
Reg TLDT
CP
ALU
Reg RLDR
CP
D E
U
Flaggor
Cin
Funkt
Reg CCLDCC
CP
1OECC
MUX0 1
Reg B
1
LDB
OEB
CP
MUX
0
1
2
3
0
1
C
C 12
g1 g0
g2
Reg A
1
LDA
OEA
CP
CPLDI
Reg I
Dataväg
DecS
IncS IncPC
Databuss
Reset
CPStyrenhet
30 st styrsignaler från styrenhet
Reg MA
LDMA
CP
Flaggor
Processor
Styrbuss
Peri
feri
en
hete
r
Digital och Datorteknik – EDA451 2009/2010
Periferienheter
30Assemblerprogrammering för FLEX
Enhet som ansluts till centralenhetens buss-system kallas ”periferienhet”. För varje periferienhet finns ett gränssnitt för in- och ut-matning (IO-interface)