Digital och Datorteknik EDA45 200/20 EDA 45 - Digital och Datorteknik Dagens föreläsning:, Extra material Ext 8 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 EDA45 200/20 Programmerarens bild av FLEX Instruktioner Load/Store LDAA, LDAB, LDX, LDS, LEAX, LEAS STAA, STAB, STX, STS Data movement TFR regs,regd Program (Flow) control JMP, JSR, BRA, BSR, B(condition) Integer arithmetic/test ADDA, ADDB, ADCA, ADCB, SUBA, SUBB, SBCA, SBCB, CLRA, CLRB, CLR, NEGA, NEGB, NEG, DECA, DECB, DEX, DEC, INCA, INCB, INX, INC, CMPA, CMPB, X, S, BITA, BITB Logical operations ANDA, ANDB, ORAA, ORAB, ANDCC, ORCC, EORA, EORB, COMA, COMB, COM Shift/rotate ASLA, ASLB, ASL, ROLA, ROLB, ROL Stack operations PSHA, PSHB, PSHC, PSHX, PULA, PULB, PULC, PULX Register 7 0 A 7 0 B 7 0 X 7 0 PC 7 0 SP 3 0 N Z V C ACCUMULATOR A ACCUMULATOR B INDEX REGISTER PROGRAM COUNTER STACK POINTER CONDITION CODES REGISTER Adresseringssätt Inherent Omedelbar Absolut Register relativ Auto pre- increment/decrement Auto post- increment/decrement PC-relativ 2
Operationer - FLEX Digital och Datorteknik EDA45 200/20 Load/Store LDAA, LDAB, LDX, LDS, LEAX, LEAS STAA, STAB, STX, STS Data movement TFR regs,regd regd Program (Flow) control JMP, JSR, BRA, BSR, B(condition) Integer arithmetic/test ADDA, ADDB, ADCA, ADCB, SUBA, SUBB, SBCA, SBCB, CLRA, CLRB, CLR, NEGA, NEGB, NEG, DECA, DECB, DEX, DEC, INCA, INCB, INX, INC, CMPA, CMPB, X, S, BITA, BITB Logical operations ANDA, ANDB, ORAA, ORAB, ANDCC, ORCC, EORA, EORB, COMA, COMB, COM Shift/rotate ASLA, ASLB, ASL, ROLA, ROLB, ROL Stack operations PSHA, PSHB, PSHC, PSHX, PULA, PULB, PULC, PULX 3 Adresseringssätt - FLEX Inherent Omedelbar Absolut Register relativ Digital och Datorteknik EDA45 200/20 Auto pre- increment/decrement Auto post- increment/decrement PC-relativ 4
Digital och Datorteknik EDA45 200/20 FLEXsimulator Minne för program och data 5 FLEX och omvärlden Digital och Datorteknik EDA45 200/20 Dataväg Reg MA Adressbuss LD MA LD A OE A Reg A LD B OE B Reg B 0 0 C M U 2 X C 3 2 g g 0 Funkt C in D LD R OE R LD T ALU U Reg R Reg T E Flaggor g 2 LD CC OE CC 0 MUX Reg CC LD X OE X Reg X IncS DecS LD S S IncPC LD PC PC OE S OE PC Databuss Pe eriferie enhete er LD I Reg I 30 st styrsignaler från styrenhet Flaggor Reset Styrbuss Styrenhet Processor MW MR 6
Digital och Datorteknik EDA45 200/20 Periferienheter i 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) Adressbuss Databuss Styrbuss Gräns-snitt Gränssnitt Minnes- system Periferienheter 7 Digital och Datorteknik EDA45 200/20 Parallell utmatning Styrbuss Logik Databuss LD Data Register OE 0 IO Interface (Ut-port) Typisk tillämpning PÅ/AV LED (Light Emitting Diode) AV PÅ 8
Digital och Datorteknik EDA45 200/20 Parallell inmatning Typisk tillämpning: Avläs PÅ/AV Styrbuss Databuss 0 5V Logik OE Data Register LD IO Interface (In-port) AV PÅ 9 FLEX - Minnesdisposition iti Digital och Datorteknik EDA45 200/20 00 0 FD A 7 A 6 A 5 A 4 A 3 A 2 A A 0 0 Port Minne för program och data FE 0 Port2 PortEnable = A 7 A 6 A 5 A 4 A 3 A 2 A A 0 Port2Enable = A 7 A 6 A 5 A 4 A 3 A 2 A A 0 FC FD FE FF IO IO RESET Portar Startadress MemoryEnable = PortEnable & Port2Enable 0
Digital och Datorteknik EDA45 200/20 Port - Avkodningslogik ik MW A 0 A A 2 A 3 A 4 A 5 & & & FD UT FD IN A 6 A 7 MR Digital och Datorteknik EDA45 200/20 Port 2 - Avkodningslogik ik MW A 0 A A 2 A 3 A 4 A 5 & & & FE UT FE IN A 6 A 7 MR 2
FLEX - Realisering i Digital och Datorteknik EDA45 200/20 D0 D D2 D3 D4 D5 D6 D7 U A0 A A2 A3 A4 A5 A6 A7 MW MR Logik D0 A0 D A D2 A2 D3 A3 D4 A4 D5 A5 D6 A6 D7 A7 MW MR CE MINNE D0 LD D OE D2 D3 D4 D5 D6 D7 D0 LD D OE D2 D3 D4 D5 D6 D7 D0 LD D OE D2 D3 D4 D5 D6 D7 D0 LD D OE D2 D3 D4 D5 D6 D7 Adressbuss Databuss Styrbuss Port Port 2 3 Periferikretsar ik Digital och Datorteknik EDA45 200/20 STAA $FD LDAA $FD 4
Digital och Datorteknik EDA45 200/20 7-segment NBCD 2 7-segment b 7 b 6 b 5 b 4 b 3 b 2 b b 0 b 7 b 6 b 5 b 4 b 3 b 2 b b 0 5 Digital och Datorteknik EDA45 200/20 EXEMPEL Rinnande ljus Raden är en kommentar Assemblerdirektiv ORG (Origin) label symbol för adress Referens till symbolisk adress Listfilen skapas vid assembleringen 6
Digital och Datorteknik EDA45 200/20 Ytterligare Assemblerdirektiv Assemblerdirektiv EQU (equate) Assemblerdirektiv FCB (form constant byte) 7 Digital och Datorteknik EDA45 200/20 Assemblerspråk Assemblerspråket består dels av mnemoniska beteckningar för FLEX s instruktioner och adresseringssätt dels av en uppsättning pseudoinstruktioner, även kallade assemblerdirektiv. Mnemoniska beteckningar för instruktioner Se Instruktionslista. Adresseringssätt Syntax för att ange specifikt adresseringssätt har beskrivits. Prefix för talbaser Tal givna på decimal form saknar prefix För att ange tal på binär form används prefixet % För att ange tal på hexadecimal form används prefixet $ $ Assemblerdirektiv ( pseudoinstruktioner ) Direktiv till assemblator (EJ maskininstruktioner). 8
Digital och Datorteknik EDA45 200/20 ORG <Val> ORIGIN : Om en symbol används för att ange adressen måste denna 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 [Sym] FCS <ASCII tecken> FORM CONSTANT STRING: Skapar en sträng med ASCII-tecken i minnet. [Sym] RMB <Val> RESERVE MEMORY BYTES : Reservera <Val> bytes i minnet. Innehållet i dessa är odefinierat. <Val> Sym [Sym] Värde (adress eller data), kan anges som en konstant med godtycklig g talbas (godtyckligt g prefix). Kan också anges i form av symbol. Sym står här för ett godtyckligt (tillåtet) symbolnamn. Sym kan, men behöver inte anges. Då Sym anges kommer symbolen att tilldelas värdet hos adressen till den första byten av det reserverade minnet. 9 Assemblering Digital och Datorteknik EDA45 200/20 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 måldatorn (.S9) och en listfil (.LST).S9.SFLEX fil absolutassemblator ato.lst 20
Digital och Datorteknik EDA45 200/20 Assemblerprogrammets struktur; exempel Start Läs Inport Skriv till Utport ; Programmet läser från en inport och kopierar till en utport InPort EQU $FD OutPort EQU $FE ORG $20 Start: LDAA InPort ; Läs från inporten STAA OutPort t ; Skriv till utporten t BRA Start ; Börja om... Symbolfält, Instruktion Operand(er) Eventuell kommentarstext blankt eller kommentar (mnemonic) eller assemblerdirektiv till instruktion eller argument till direktiv Fälten separeras med blanktecken, dvs tabulatur eller mellanslag. 2 Digital och Datorteknik EDA45 200/20 Exempelsamlingens uppgift 8.7 Skriv en subrutin MASKBIT för FLEX-processorn som maskerar (nollställer) bit 7 i varje byte inom adressområdet (40) 6 -(60) 6. Vi löser på tavlan... 22
Digital och Datorteknik EDA45 200/20 Exempelsamlingens uppgift 8.2 Översätt följande assemblerprogram för FLEX till maskinkod (assemblera programmet). Rita en figur av minnet där det klart framgår hur maskinkod och assemblerkod hör ihop och vilka minnesadresser maskinkoden är placerad på. ORG $30 Start LDX #$0C LOOP LDAA,X+ STAA $FE DECB BPL LOOP LDAA 2 NOP Vi löser på tavlan... 23