Rechnersysteme. Speicherorganisation und Adressierungsarten. Otto-von-Guericke-Universität Magdeburg

Ähnliche Dokumente
Technische Informatik-I. Speicherorganisation und Adressierungsarten. Otto-von-Guericke-Universität Magdeburg

Assembler - Adressierungsarten

Teil 1: Prozessorstrukturen

Maschinenbefehlssätze. an Beispielen von: Motorola: MC 6809 ATMEL: AVR ATmega

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

Teil 1: Prozessorstrukturen

Technische Informatik 2 Adressierungsarten

TI2 Übung 2. Hauptspeicher, 6809-Prozessor. 23. November 2004 (WS 2004) Andreas I. Schmied Universität Ulm Fakultät für Informatik

TI-Übung Assembler. Andreas I. Schmied AspectIX-Team Abteilung Verteilte Systeme Universität Ulm WS2005

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen

MOTOROLA MC Befehlssatz

Rechnergrundlagen SS Vorlesung

Mikrocontroller-Programmierung

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache

10. Die Adressierungsarten des MSP 430

05. Assembler-Programmierung. Datenstrukturen des ATMega32. Literatur

6. Intel IA-32 Prozessoren Aufbau und Adressierungsarten

Instruktionssatz-Architektur

PC/XT/AT ASSEMBLER-BUCH

Grundbegriffe der Informatik

9. Assembler: Der Prozessor Motorola 68000

Technische Informatik 1

x86-assemblerprogrammierung

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.

Technische Informatik 2 Maschinenprogrammierungskonzepte

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at

Übungsblatt 10 (Block C 2) (16 Punkte)

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / Vorlesung 9, Dienstag 18.

Grundlagen der Rechnerarchitektur

Rechnergrundlagen SS Vorlesung

RISC: Reduced Instruction Set Computer. Technische Informatik I Wintersemester 12/13 1. J. Kaiser, IVS-EOS

Die ARM-Mikroarchitektur. Acorn RISC Machine ARM. Asm Prak SS03 p.1/13

Assembler - Variablen

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Mikrocomputertechnik. Adressierungsarten

Befehle zur Verarbeitung von Daten ( data processing ):

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9

Daniel Betz Wintersemester 2011/12

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

ERA-Zentralübung Maschinenprogrammierung

H E F B G D. C. DLX Rechnerkern

3. Grundlagen der Rechnerarchitektur

U23 Assembler Workshop

MOP: Befehlsliste für den Mikrocontroller 8051

Digitaltechnik und Rechnerstrukturen. 2. Entwurf eines einfachen Prozessors

Beispiel: A[300] = h + A[300]

Grundlagen der Rechnerarchitektur. Einführung

Technische Informatik - Eine Einführung

U23 Assembler Workshop

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Rechner- organisa-on 2 TOY. Karl C. Posch.

DIGITALE SCHALTUNGEN II

FAKULTÄT FÜR INFORMATIK

Teil 1: Prozessorstrukturen

Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:

Vorlesung "Struktur von Mikrorechnern" (SMR)

Informationssysteme Semesterwoche 3

Assembler-Programmierung

Rechnergrundlagen SS Vorlesung

Rechnernetze und -Organisation. Teil B (30. März 2011) 2011 Michael Hutter Karl C. Posch

RISC-Prozessoren (1)

Einführung. Saalübung Informatik II SS Einführung. Einführung

Von-Neumann-Architektur

Mikrocomputertechnik 2.Mikroprozessor

Organisatorisches. PDV und Robotik Fakultät 4 TUB 1 INFO4 Übung Assembler 1

HC680 PROGRAMMER'S REFERENCE MANUAL

Zusammenfassung der Assemblerbefehle des 8051

Assembler Kontrollstrukturen

5.BMaschinensprache und Assembler


Bekannte Druckfehler im Buch Embedded Controller Eine Einführung in Hard- und Software

Der Toy Rechner Ein einfacher Mikrorechner

Grundlagen der Rechnerarchitektur

EDT-REFERAT Adressierungsarten

Dynamisches Binden in Multics

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Aufgabe 1 Entwicklung einer Virtuellen Maschine

Grundlagen der Rechnerarchitektur

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

"Organisation und Technologie von Rechensystemen 4"

B1 Stapelspeicher (stack)

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU

4 Assembler für die 8051-Controller-Familie

10. Der Befehlssatz des MSP 430

Rechnern netze und Organisatio on

1 Einleitung zum RISC Prozessor

Helmut Bähring. Mikrorechner Technik. Übungen und Lösungen. Mit 78 Abbildungen und CD-ROM. Springer

Hinweise 80x86-Architektur

Disclaimer: Das sind Lösungsvorschläge, keine Musterlösungen.

Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems

Mikrocomputertechnik

Heute nur MIPS-Praxis (4 Aufgaben)

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Transkript:

Rechnersysteme Speicherorganisation und Adressierungsarten Otto-von-Guericke-Universität Magdeburg

Speicherorganisation Wort-orientierter Speicher Wort 00 Wort 01 Wort 02 Wort 03 2 n -1 0 Bit Wort 2 k -1 Byte-orientierter Speicher Vorteil: Kompakteres Abspeichern verschieden langer Befehle und Operanden Byte 00 Byte 01 Byte 02 Byte 03 7 0 Bit Byte 2 k -1 2

Speicherorganisation Wort-orientierter Speicher Wort 00 Wort 01 Wort 02 Wort 03 31 0 Bit Wort 2 k -1 Byte-orientierter Speicher (Lang-) Wort (Halb-) Wort Byte-Adressen 3-0 7-4 B- 8 F -C Wort 00 Wort 01 Wort 02 Wort 03 31 24 23 16 15 8 7 Byte 0 Byte 1 Byte 2 Byte 0 Byte 1 Byte 2 Byte 0 Byte 1 Byte 2 Byte 0 Byte 1 Byte 2 Byte 3 Byte 3 Byte 3 Byte 3 0 Bit Doppelword Quad- Wort Wort 2 k -1 Byte 0 Byte 1 Byte 2 Byte 3 3

Big-Endian-Darstellung Beisp. Motorola 680x, 68x00, SPARC, PowerPC Sp.- Wort a Sp.- Wort a + 1 Sp.- Wort a + 2 Sp.- Wort a + 3 Byte W 0 Byte 1 E Byte L2 Byte T3 1010 Byte 0010 4 0000 Byte 1101 5 0111 Byte 0111 6 0111 Byte 0111 7 Byte 8 Byte 9 Byte A Byte B Byte C Byte D Byte E Byte F Big-Endian- Darstellung Wortreihenfolge Zeichenkette: "WELTBANK" L-Wort k k +1 k +2 k +3 Byte 0 Byte 1 Byte 2 Byte 3 32-Bit Integer: 0xA20D7777 MSB LSB MSB LSB w 0 w 1 W E L T L-Wort k +4 Byte 4 k +5 k +6 k +7 Byte 5 Byte 6 Byte 7 10100010 00001101 01110111 01110111 w 2 w 3 B A N K 4

Little-Endian-Darstellung Beisp. Intel 80x86, ARM Sp.- Wort a Sp.- Wort a + 1 Sp.- Wort a + 2 Sp.- Wort a + 3 Byte T 0 Byte L 1 Byte E2 Byte3 W 0111 Byte 0111 4 0111 Byte 0111 5 1000 Byte 1101 6 1010 Byte 0010 7 Byte 8 Byte 9 Byte A Byte B Byte C Byte D Byte E Byte F Little-Endian- Darstellung 32-Bit Integer: 0xA20D7777 Wortreihenfolge Zeichenkette: "WELTBANK" Wort k k+1 k+2 k+3 Byte 0 Byte 1 Byte 2 Byte 3 10100010 00001101 01110111 01110111 LSB MSB LSB MSB w 1 w 0 T L E W Wort k+4 Byte 4 k+5 k+6 k+7 Byte 5 Byte 6 Byte 7 w 3 w 2 K N A B 5

Little-/Big-Endian-Darstellung Zeichenkette: HELLO_World Big - Endian BYTE-NR 0 1 2 3 0 1 2 3 0 1 2 3 H E L L O _ W O R L D! Little - Endian BYTE-NR 3 2 1 0 3 2 1 0 3 2 1 0 L L E H O W _ O! D L R Für 16-Bit Datentypen des MC 6809 wird die Big-Endian Darstellung verwendet 6

6809 Befehlsformate: 7 0 Postbyte 1-Byte -Befehle - der Operand, falls vorhanden wird implizit durch den bestimmt z.b. INCA 2 -Byte -Befehle - Bedeutung des Postbytes: 1. kurze Adresse 2. nähere Bestimmung der Adressierung mit Index 1. Postbyte 2. Postbyte 3-Byte -Befehle - Bedeutung der Postbytes: 1. lange Adresse 2. nähere Bestimmung der Adressierung mit Index 1. Postbyte 2. Postbyte 3. Postbyte oder Erw. 1. Postbyte 2. Postbyte 4-Byte -Befehle ohne Erw. Bedeutung der Postbytes: nähere Bestimmung der Adressierung mit Index 4-Byte -Befehle mit Erw. Bedeutung der Postbytes: lange Adresse Erw. 1. Postbyte 5 -Byte -Befehle Bedeutung der Postbytes: nähere Bestimmung der Adressierung mit Index 2. Postbyte 3. Postbyte 7

Ziele beim Entwurf eines Adressierungsmechanismus großer Adreßraum kleines Adreßfeld in der Instruktion Komfort für den Programmierer positionsunabhängiger (verschieblicher) Code Lösung des Zielkonflikts zwischen Größe des AR und Größe des AF: Berücksichtigung von Lokalität der Berechnungen Vereinfachung der Adressierung einfacher Datenstrukturen (Listen, Arrays) 8

Möglichkeiten der Operandenspezifikation Spezifikation des Operanden Adresse Direktoperand (Literal, immediate value) implizit (0-Adreß-Befehl) explizit (n-adreß-befehl) Spezialbefehle, die sich auf bestimmte Register beziehen implizit addressierte Datenstrukturen z.b. Stacks, Queues Quelle/Ziel (Source/Destination) Anzahl der Operanden 1 2 3 Reg./Reg. Reg./Mem. Mem./Mem. absolut relativ indirekt indiziert indirekt/indiziert 9

6809 Register Adressierung Befehle : TFR, EXG, Speicherplatz m m+1 m+2 m+3 m+4 Reg. Spec. Postbyte Definition bei TFR und EXG:! 7 4 3 Reg. 1 (S) Reg. 2 (D) S: Source D: Destination Register Code Hex (Bin) D 0000 0 X 0001 1 Y 0010 2 U 0011 3 S 0100 4 PC 0101 5 A 1000 8 B 1001 9 CCR 1010 A DP 1011 B 0 10

Tutorium Freitag, 1.02.2013, 11 13 Uhr Raum 307, durch Herrn Filter Wiederholung der Kernthemen, Diskussion von weiteren Aufgaben, Gruppenarbeit

Verteilung der Votierungen unter der Annahme, dass alle verbleibenden 10 Aufgaben gelöst werden. 10 9 8 7 Anyahl der Studenten 6 5 4 3 2 1 0 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 Votierungen in Prozent

Stack (Stapel, Keller, LIFO-Queue) aufsteigende Adressen 0x0000 Stack wächst in diese Richtung Max Stack- Pointer TOS Top of Stack PUSH PULS Daten BOS Bottom of Stack 0xFFFF PUSH: SP ß SP-1 SP = MAX: Exception full Mem[SP] ß Register 14 PULS: SP = BOS: Exception empty Register ß Mem[SP] SP ß SP+1

6809 Stack Adressierung Befehle : PSHU, PSHS, PULU, PULS Speicherplatz m m+1 m+2 m+3 m+4 Register List. Post-Byte Definition bei PSHx und PULx PSHS, PULS PC U Y X DP B A CC PSHU, PULU PC S Y X DP B A CC 15

6809 Direktoperanden (unmittelbare Adressierung, engl.: immediate) Speicherplatz m m+1 m+2 m+3 post byte 1 post byte 2 8bit 16 Bit m+4 Beisp. : ADDA #$95 m 8B m+1 95 ADDD #$1295 m C3 m+1 12 m+2 95 PC = PC+2 PC = PC+3 LDS #$ABCD m m+1 10 CE m+2 AB m+3 CD PC = PC+4 16

Absolute (Direkte) Adressierung Speicherplatz 6809 (extended direct) m m+1 m+2 m+3 qq pp m+4 EA = qq 2 8 + pp qq pp Die effektive Adresse EA wird durch Konkatenation der beiden Post Bytes nach dem gebildet. Das erste Post Byte (qq) gibt das höherwertige Byte, das zweite Postbyte (pp) das niederwertige Byte der EA an. 17

6809 (base page direct) Adressierung über Basisregister Speicherplatz m Direct Page Register qq DP m+1 m+2 m+3 pp m+4 EA = qq 2 8 + pp qq pp Die effektive Adresse EA wird durch Konkatenation einer kurzen Adresse nach dem mit dem Inhalt des Direct Page Registers (DP) gebildet. Die kurze Adresse gibt das niederwertige Byte, der Inhalt des DP das höherwertige Byte der EA an. Das DP kann dynamisch durch einen Transferbefehle z.b. TFR A, DP geladen werden oder durch eine Assemblerdirective SETDP gesetzt werden. 18

6809 (extended indirect) Indirekte Adressierung Speicherplatz Beisp.: ADDA[$E0D7] m m+1 m+2 m+3 m+4 post byte (9F) qq pp spezifiziert den indirekt Modus qq pp I A = qq 28 + pp 403E 403F 4040 4041 m m+1 m+2 Datum AB 9F E0 m+3 D7 n n +1 dd ee m+4 E 0D6 E 0D7 40 dd ee E A = dd 28 + ee E0D8 E0D9 3F Die dem folgende Adresse gibt nicht an, wo sich die Daten für den Befehl befinden, sondern Technische die Adresse, Informatik die auf I, WS die 12/13 Daten zeigt (Unterstützung von Zeigern). 19

Indizierte Adressierung (Indexed Adressing) Basisadresse Versatz displacement, offset + EA =Basisadresse + Distanzadresse Wo steht die Basisadresse? Register: Indexregister Speicher: indirekte Adressierung Wo steht der Versatz? Speicher (Literal) Register Autoincrement /Autodecrement 20

Grundform der indiziert indirekten Adressierung Indexregister + displacement, offset Versatz Adresse der EA im Speicher EA 21

Indizierte Adressierung beim MC 6809: Zero offset 5-Bit offset Long (16 Bit) constant offset Accumulator offset (Versatz kann verändert werden) Autoincrement Program Counter Relativ Indexed Indirect 22

Grundformen der indizierten Adressierung Basisadresse Versatz + EA =Basisadresse + Versatz Basisadresse Versatz Bezeichnung (Index-) Register Literal (kurz 5 Bit) Adressierung mit konstantem Versatz X, Y, U, S, PC Speicher (lang 8/16 Bit) vom Indexregister Constant Offset Mode (Index-) Register Register A, B, D Adressierung mit Versatz aus X, Y, U, S dem Accumulator A, B oder D Accumulator Offset (Index-) Register fest ±1, ±2 Autoincrement / Autodecrement X, Y, U, S POST increment / PRE decrement 23

Instruktion Adresse EA Operand direkt Instruktion Register Adresse Versatz + indiziert EA Operand Instruktion Adresse Adresse indirekt EA Operand Register Adresse indiziert indirekt Versatz + Adresse 24 EA Operand

6809 Indizierte Adressierung (Indexed Adressing) Modi für indizierte Adressierung: Konstanter Versatz Langform (zusätzliches Byte) lange Form(16 Bit) Kurzform (Spez. im Post Byte) kurze Form (8 Bit) Versatz = 0 Versatz ist 5-Bit lang Programmzähler Offset 8/16 Bit Accumulator Offset A, B und D Auto Increment um 1 oder 2 Auto Decrement um 1 oder 2 Extended Indirect Assembler Notation: Notation Bedeutung,R das Register R (X, Y, U, S, PC) ist als Indexregister spezifiziert offset,r offset wird zum Indexregister R addiert label,pcr Programmzähler-relative Adressierung den Versatz zwischen PC und Label wird in der Assemblierungsphase berechnet und als konstanter Versatz im Modus: constant PC-Offset eingesetzt,r+(+) Autoincrement um 1 (bzw. 2) des Registers R (X, Y, U, S, PC) (Postincrement), -(-)R Autodecrement um 1 (bzw 2) des Registers R (X, Y, U, S, PC) (Predecrement) [... Technische.......] Informatik I, WS indizierte 12/13 Adresse ist eine indirekte Adresse 25

LDX HEAD_OF_LIST Index Reg. COMP CMPX End_lst BHI Fin LDA,X+ Indiziert mit (Post-) Autoincrement CMPA #77 BNE COMP BSR EF! Subroutine Branch to "element found" Fin BSR NF!! Subroutine Branch to "element not found" HEAD-OF-LIST FDB $0000 End_lst FDB $0FFF Listen Element Listen Element Listen Element Listen Element Listen Element Index Reg. LDX HEAD_OF_LIST LDA Sem_O COMP LDB A,X Indiziert mit Register A Offset Versatz CMPB S_zahl Falls Semesterzahl >12: BHI OUTPUT Ausgabe: Name, Vorname LEAX RL, X Addieren der Record-Länge* CMPX End_lst Ende der Liste erreicht? BHI Fin BRA COMP RL FCB 32 Sem_O FCB 29 S_zahl FCB 12 HEAD_OF_LIST FDB $0000 End_lst FDB $0FFF * da es keinen Additionsbefehl für das Indexregister X gibt, wird LEAX verwendet. 26 Name (14 Byte) Vorn ame (14 Byte) Alter (1 Byte) Semester (1 Byte) Matr.Nr. (2 Byte) Name (14 Byte) Vorn ame (14 Byte) Alter (1 Byte) Semester (1 Byte) Matr.Nr. (2 Byte) HEAD_OF_LIST

Erweiterungen für die Indizierte Adressierung Indexregister Basisform Versatz displacement, offset + EA = Indexregister + Distanzadresse Erweiterungen: skalierter Index zusätzliche feste Distanzadressen Indirektion 27

Indiziert, indizierter, am... Memory indirect pre-indexed Adressierungsart bei MC 68020 31 0 Addressregister memory address Base Displacement 31 sign extended value 0 + Index Register 31 sign extended value 0 Scale scale value x + 31 31 indirect memory address points to value of indirect memory address 0 0 Output Displacement 31 sign extended value 0 + Effective Address 28 operand

Architektur Varianten Stack orientiert: Burroughs, Java VM Speicher orientiert: IBM 360 series, Accumulator-Architekturen, frühe Mikroprozessoren Erweitert Speicher-orientiert: DEC VAX, Motorola 68K, IBM PowerPC, Intel x 86, Pentium II Register orientiert: DEC Alpha, ARM, Sparc, MIPS 29

Beisp. : Motorola 6809 Ein-Adreß-Befehl Adr eßfeld Befehlsformate: 680x0, Intel 386,486 Beisp.: Mot orola 680x0 Zwei-Adreß-Befehl Adr eßfeld (Quelle) Adr eßfeld (Ziel) 2. ter Quel loperand ste ht an Zi eladresse und wird d urch Ope ration überschrieben 4 3 3 6 REG MO D Adreßfeld MOD Re giste r Re giste r # RE G Speiche r kurz, lang MIP S, Alpha, SPARC Drei-Adreß-Befehl Adr eßfeld (Quelle 1) Adr eßfeld (Quelle 2) Adr eßfeld (Ziel) Beisp. MIP S 6 5 5 rs rt rd shamt func Technische Informatik MIPSI, WS rs 12/13 rt Adresse 5 30 5 6 rs: erstes Quellreg. rt: zweites Quellreg. rd: Zielreg. shamt : shift amount func: funktionale Erw. J. Kaiser, des OPCO IVS-EOS DE

Lernziele - Aufbau eines realen einfachen Prozessors - Befehlssatz - Standardbefehle (arithm./log., Shift, Transfer, System) - Verzweigungen und Sprünge - Behandlung von Bedingungen - Adressierungsarten - Zielkonflikte bei der Adressierung - gängige Adressierungsarten - einfache Programme in Assembler unter Ausnutzung der Befehls- und Adressierungsmöglichkeiten. 31