Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

6. Übung Informatik 1 Inhalte: Der DLX-Prozessor

Ähnliche Präsentationen


Präsentation zum Thema: "6. Übung Informatik 1 Inhalte: Der DLX-Prozessor"—  Präsentation transkript:

1 6. Übung Informatik 1 Inhalte: Der DLX-Prozessor
Lade/Speicher-Architektur Befehlssatz Adressierung Steuerung und Datenpfad DLX-Programmierung Der DLX-Simulator WinDLX

2 Aufgaben: 6.1 Erläutern Sie die 3 DLX-Befehlsformate an Hand der vorgegebenen Befehle und codieren Sie diese als binäre 32-Bit-Befehlswörter. ALU-Befehle add r3,r2,r1 andi r3,r4,0xff Verzweigebefehle bnez r3,loop j addr1 Lade/Speicher-Befehle lb r5,0x200(r4)

3 Hauptoperationscodes der DLX
IR3..5 IR0..2 000 001 010 011 100 101 110 111 SPEZIAL J JAL BEQZ BNEZ ADDI ADDUI SUBI SUBUI ANDI ORI XORI LHI RFE TRAP JR JALR SLLI SRLI SRAI SEQI SNEI SLTI SGTI SLEI SGEI LB LH LW LBU LHU SB SH SW SEQUI SNEUI SLTUI SGTUI SLEUI SGEUI Erweiterte Operationscodes func im R-Befehlsformat der DLX(SPEZIAL) IR29..31 IR26..28 000 001 010 011 100 101 110 111 SLL SRL SRA TRAP SEQU SNEU SLTU SGTU SLEU SGEU ADD ADDU SUB SUBU AND OR XOR SEQ SNE SLT SGT SLE SGE MOVI2S MOVS2I

4 IR R -Type (Register) Operationscode R e g i s t e r
IR Operationscode R e g i s t e r opc rs rs rd func ALU-Befehl add r3,r2,r ; r3  r2 + r1

5 Operationscode R e g i s t e r immediate/ displacement/ offset
I -Type (Immediate) Operationscode R e g i s t e r immediate/ displacement/ offset rs rd/rs2 offset von PC zu loop IR (1) (2) (3) (1) ALU-Befehl andi r3, r4,0xff ; r3  r4 & 0xff (2) Verzweigebefehl bnez r3, loop ; PC  PC + (IR1616 ## IR16…31) ; offset von PC+4 zu loop (mit VZ) (3) Lade/Speicher-Bef lb r5, 0x200(r4) ; r5  M[r4 +0x200]024 ## M[r4 +0x200]

6 IR J-Type (Jump) Operationscode jump-offset
Operationscode jump-offset bit-offset von PC zu addr1 IR Verzweigebefehl j addr ; PC  PC + (IR66 ## IR6…31)

7 6.2 Ermitteln Sie den DLX-Code für folgende Anweisungen.
a = b + c; d = e – f; a,b,c,d,e,f sind 32-Bit Worte im Speicher mit den Labels A,B,C,D,E,F Verwenden Sie dabei den nachstehend angegebenen Rahmen. .text 0x20000 start: lhi r1,0X10 ; Laden Adresse A nach R1 ; ; Laden a nach R2 trap ; steht hier für eine HALT-Anweisung, liefert ; Ausschrift “trap 0“ .data 0x102000 A: .word 0x..... B: .word 0x..... C: .word 0x..... D: .word 0x..... E: .word 0x..... F: .word 0x.....

8 .text 0x20000 start: lhi r1,0X10 ori r1,r1,0x2000 lw r2,4(r1) ; Laden b nach R2 lw r3,8(r1) add r3,r3,r2 sw 0(r1),r ; a = b + c lw r2,16(r1) lw r3,20(r1) sub r3,r2,r3 sw 12(r1),r3 trap ; steht hier für HALT, liefert Ausschrift “trap 0“ .data 0x102000 A: .word 0x..... B: .word 0x..... C: .word 0x..... D: .word 0x..... E: .word 0x..... F: .word 0x.....

9 6.3 Gegeben ist folgender DLX-Code:
addi r1,r0,0x18 lw r11,0xC(r1) addi r1,r0,4 label: sub r2,r11,r1 addi r2,r2,4 srli r1,r2,3 bnez r1,label und die Speicherbelegung M[0x24] = 3210 Berechnen Sie Inhalt von R1 nach 1. und dem 2.Schleifendurchlauf

10 Befehl 1. Durchlauf 2.Durchlauf addi r1,r0,0x18 lw r11,0xC(r1) addi r1,r0,0x4 label: sub r2,r11,r1 addi r2,r2,4 srli r1,r2,3 bnez r1,label Speicherbelegung M[0x24] = 3210

11 Befehl 1. Durchlauf 2.Durchlauf addi r1,r0,0x18 r1 = 0x18 lw r11,0xC(r1) r11 = 3210 addi r1,r0,0x4 r1 = 4 label: sub r2,r11,r1 r2 = 3206 addi r2,r2,4 r2 = 3210 srli r1,r2,3 r1 = 401 bnez r1,label r1 = 401 Speicherbelegung M[0x24] = 3210

12 Befehl 1. Durchlauf 2.Durchlauf addi r1,r0,0x18 r1 = 0x18 lw r11,0xC(r1) r11 = 3210 addi r1,r0,0x4 r1 = 4 label: sub r2,r11,r1 r2 = 3206 r2 = 2809 addi r2,r2,4 r2 = 3210 r2 = 2813 srli r1,r2,3 r1 = 401 r1 = 351 bnez r1,label r1 = 401 Speicherbelegung M[0x24] = 3210

13 6.4 Zwei gleich große Datenfelder mit 32-Bit-Daten der Länge n sollen auf
Gleichheit untersucht werden. .text start: ……… ……… .data adr_n: .byte ; Länge der Felder F1 und F2 ergebnis: .byte ; Ergebnis: 0 für ≠ , 1 für = .align 2 adr_F1: .word ; Adresse von Feld1 ………. adr_F2: .word ; Adresse von Feld2

14 ; Test auf Gleichheit von 2 gleich großen Datenfeldern( mit 32-Bit Daten):
.text start: lhi r5,adr_F1>>16 ori r5,r5,adr_F1&0xffff ; Adr. von F1 in r5 lhi r6,adr_F2>>16 ori r6,r6,adr_F2&0xffff ; Adr. von F2 in r6 lhi r7,adr_n>>16 ori r7,r7,adr_n&0xffff lb r7,0(r7) ; Länge der Felder in r7, Zähler für Test lhi r8,ergebnis>>16 ori r8,r8,ergebnis&0xffff loop: lw r9,0(r5) lw r10,0(r6) seq r10,r9,r10 beqz r10,store ; unterschiedliche Worte, Vergleichen beenden addi r5,r5,0x4 addi r6,r6,0x4 subi r7,r7,1 bnez r7,loop store: sb 0(r8),r10 trap 0


Herunterladen ppt "6. Übung Informatik 1 Inhalte: Der DLX-Prozessor"

Ähnliche Präsentationen


Google-Anzeigen