Kompendium - Datorteknik
Kompendium - Datorteknik Kompendium - Datorteknik
JMPV SPILL ; spill?ASRA ; dela med 2JMP HITSPILL: ASRA ; dela med 2ADDA #80 ; kompensera genom att flippa MSBHIT: STA 22SLUT: JMP SLUT ; här stannar vi; dataareaORG 20A: DB 17B: DB 25C: DB 00Några kommentarer till ovanstående program:• Assemblatorn tillåter så kallade symboliska adresser. Innan programmet exekverashar dessa naturligtvis bytts ut mot de aktuella adresserna. Vanligtvisarbetar assemblatorn i två pass. I det första beräknas värdena på de symboliskaadresserna, i det andra översätts alltihop till exekverbar kod.• Vi introducerade omedelbar adresseringsmod. Observera den förödande skillnadenmellan ADDA #80 (AR = AR + 80) och ADDA 80 (AR = AR +M(80)). Vanligaste nybörjarfelet!• ORG och DB är assemblerdirektiv, alltså ej instruktioner. ORG 20 sätter lägespekaren(vid assembleringen) på 20. Nästa rad definierar en byte, 17, pådenna adress. Om vi vill kan vi referera till byten med labeln A.• Observera att instruktionen ADDA 21, påverkar spillflaggan. Vi testar värdetpå V med JMPV SPILL och gör två olika saker beroende på utfallet.Observera att det inte går att testa på V efter ASRA. Då kan ju V ha fått ettnytt värde.I fig. F.3 visas en programmerarmodell för spillexemplet. Vi tänker oss att vihar assemblerat programmet och placerat det på rätt ställe i minnet. I ett verkligt fallär naturligtvis även opkoderna utbytta mot hexkoder. Det är en mycket bra övningatt singlesteppa assemblerprogram. Exekvera alltså instruktion för instruktion ochskriv in ändrade värden i register och minnet.F.1.4AdresseringsmoderAdresseringsmoder är alltså olika sätt att peka ut en operand. Man brukar användabegreppet effektiv adress EA, som helt enkelt är operandens minnesadress. Härkommer en lista på de moder som brukar förekomma:1. absolut. Byten efter opkoden pekar ut operanden.Exempel: LDA A ; AR = M(A). Effektiv adress EA = A.69
ProcessorMinneARCCRPC000 0 0 00000000102030405060708090A0B0C0DLDA20ADDA21JMPV09ASRAJMP0CASRAADDA#80JMP0C202122172500Figur F.3: Programmerarmodell för spillexemplet.2. omedelbar. Byten efter opkoden är operanden.Exempel: LDA #A ; AR = A. Effektiv adress EA = PC + 1 (här tänkervi oss att PC pekar på instruktionen).3. underförstådd. Operanden ingår i opkoden. Exempel: INCA ; AR = AR+1.Här finns ingen effektiv adress.4. (minnes)indirekt. Byten efter opkoden innehåller adressen till en pekare, sompekar på operanden.Exempel: LDA (A) ; AR = M(M(A)).Effektiv adress EA = M(A). Denna mod är ovanlig, åtminstone för enenkel ackumulatormaskin. Den kan vara händig att ha vid hanterande av datastrukturer,t ex en array av pekare till strängar.5. indexerad. Byten efter opkoden plus indexregistret bildar den effektiva adressen.Exempel: LDA (XR)F ; AR = M(XR+F)Detta är en mycket användbar mod, som asm-programmeraren inte kan levautan!6. PC-relativ. Byten efter opkoden plus programräknaren bildar den effektivaadressen. F är ett tal med tecken.Exempel: BRA F ; PC = PC+FBRA är alltså samma sak som JMP, men med PC-relativ istället för absolutmod. Lägg märke till att kod konsekvent skriven med PC-relativ mod blirlägesoberoende (relokerbar). Har vi absoluta hopp, går det ju inte att flyttapå koden.70
- Page 19 and 20: Sedan kan man deklarera signaler so
- Page 21 and 22: WITH sel SELECTy
- Page 23 and 24: ELSE -- x är 1!CASE q ISWHEN "00"
- Page 25 and 26: • klockan får inte förekomma n
- Page 27 and 28: Kapitel 2Utvecklingsverktyget ISEVi
- Page 29 and 30: Tryck därefter next och sedan på
- Page 31 and 32: TIE | 739 | TIETIE | 838 | countTIE
- Page 33 and 34: END testbench;ARCHITECTURE behavior
- Page 35 and 36: uut: counter PORT MAP(clk => clk,co
- Page 37 and 38: esetHexa−decimalttangentbord4PNR4
- Page 39 and 40: clkrstKBstrobekbSEPREG1X2dvar210-r
- Page 41 and 42: p
- Page 43 and 44: 3.5 SimuleringVi avslutar detta exe
- Page 45 and 46: Kapitel 4Laborationsuppgift:IR-mott
- Page 47 and 48: IR−mottagareCPLDKlock−modulFigu
- Page 49: Bilaga AKopplingsschemanA.1 Blocksc
- Page 52 and 53: knapp
- Page 54 and 55: u : OUT std_logic_vector(3 downto 0
- Page 56 and 57: Bilaga CProjektkatalog för DK/IT 2
- Page 58 and 59: ör ha en upplösning av minst 256x
- Page 60 and 61: Mätinstrument och liknandeDigitalu
- Page 62 and 63: Bilaga DVirteknikAll konstruktion i
- Page 64 and 65: Bilaga ELogikanalysatorn HP54620ABr
- Page 66 and 67: hexadecimal form genom att trycka p
- Page 68 and 69: ARCCRPCXRSPProcessorc v zN$0000$000
- Page 72 and 73: F.1.5Indexerad adresseringsmod.Vi t
- Page 74 and 75: Mnemonic Beskrivning Funktion Flagg
- Page 76 and 77: M Adresseringsmod EA3 bitar0 absolu
- Page 78 and 79: START80: 0 0 0 0 0 0 0 11: 0 0 0 0
- Page 80 and 81: Adress Signaler Funktion Kommentar0
- Page 82 and 83: F.4.2ALU-enhetenVi fortsätter med
- Page 84 and 85: end component;--component aluport(c
- Page 86 and 87: -- läsningd
- Page 88 and 89: Figur F.12: Ett exempel på simuler
- Page 90: Litteraturförteckning[1] Roos O. (
ProcessorMinneARCCRPC000 0 0 00000000102030405060708090A0B0C0DLDA20ADDA21JMPV09ASRAJMP0CASRAADDA#80JMP0C202122172500Figur F.3: Programmerarmodell för spillexemplet.2. omedelbar. Byten efter opkoden är operanden.Exempel: LDA #A ; AR = A. Effektiv adress EA = PC + 1 (här tänkervi oss att PC pekar på instruktionen).3. underförstådd. Operanden ingår i opkoden. Exempel: INCA ; AR = AR+1.Här finns ingen effektiv adress.4. (minnes)indirekt. Byten efter opkoden innehåller adressen till en pekare, sompekar på operanden.Exempel: LDA (A) ; AR = M(M(A)).Effektiv adress EA = M(A). Denna mod är ovanlig, åtminstone för enenkel ackumulatormaskin. Den kan vara händig att ha vid hanterande av datastrukturer,t ex en array av pekare till strängar.5. indexerad. Byten efter opkoden plus indexregistret bildar den effektiva adressen.Exempel: LDA (XR)F ; AR = M(XR+F)Detta är en mycket användbar mod, som asm-programmeraren inte kan levautan!6. PC-relativ. Byten efter opkoden plus programräknaren bildar den effektivaadressen. F är ett tal med tecken.Exempel: BRA F ; PC = PC+FBRA är alltså samma sak som JMP, men med PC-relativ istället för absolutmod. Lägg märke till att kod konsekvent skriven med PC-relativ mod blirlägesoberoende (relokerbar). Har vi absoluta hopp, går det ju inte att flyttapå koden.70