ERA-Zentralübung Maschinenprogrammierung
|
|
- Simon Wagner
- vor 7 Jahren
- Abrufe
Transkript
1 Marcel Meyer LRR TU München
2 Inhalt Aufgabe 1.1 Aufgabe 1.2 Speicherzugriffe Unbedingte Sprünge Stapelspeicher Unterprogramme
3 Aufgabe 1.1 Quellregister AX, BX, CX Konstante deklarieren Werte aufaddieren Zielregister DX
4 Aufgabe 1.2 Gegeben: Temperatur-Sensor mit AD-Wandler 8-Bit-Auflösung Wertebereich Wert 0 entspricht 100 C Wert 255 entspricht 10 C Linearer Verlauf
5 Aufgabe 1.2 Aufstellen einer Geradengleichung: oder T = 10 + (255 S) T = 10 + (255 S) (1) (2)
6 Aufgabe 1.2 Problem: Voreiliges Berechnen von konstanten Ausdrücken führt zu unbrauchbaren Werten aufgrund der Ganzzahlrechnung. T = 10 + (255 S) 90 T = 10 + (255 S) 0 (3) 255 T = 10 + (255 S) T = 10 + (255 S) 2 (4) Die Steigung muss explizit berechnet werden. Alternativ Verwendung von Festkommarechnung (siehe TÜ2).
7 80386-Speicherzugriffe Speicher nach von Neumann-Konzept organisiert, Daten und Programm im gleichen Speicher Aufgeteilt in durchnummerierte Zellen, 8 Bit pro Zelle speicherbar verwendet Speicheradressen mit 32 Bit Breite Byte = 4 GiB 1 adressierbar Speicherzugriffe oft anstatt Register nutzbar Adressierungsarten 1 Gibibyte: = / Gigabyte: =
8 80386-Speicherzugriffe Speicherzellen enthalten keinen Typ, Speicherinhalt anonym Prozessor muss Werte richtig interpretieren (signed, unsigned, Festkomma, Fliesskomma, Zeichen,... ) Zugriffe erfolgen mit 8-Bit-, 16-Bit- oder 32-Bit-Breite little-endian -Format im Speicher für 16/32 Bit niederwertiges Byte zuerst (Startadresse) (LSB/MSB = least/most significant Byte/Bit) MSB zuerst big-endian
9 Adressierungsarten Beschreibung, wie die CPU an die Daten kommt. Bereits bekannt: Register und Konstante (Immediate) Neu: Direkte Adressierung Adresse der Speicherzelle wird direkt angegeben. MOV EAX,[20] ; 32-Bit-Lesezugriff auf Adr. 20 MOV [22],AX ; 16-Bit-Schreibzugriff auf Adr. 22 MOV BL,[27] ; 8-Bit-Lesezugriff auf Adr. 27 ADD EAX,[30] ; 32-Bit-Addition mit Lesezugriff SUB [32],BX ; 16-Bit-Sub. mit Lese/Schreibzugriff
10 Hinweise zum Speicherzugriff Adresswert bei 16/32 Bit ist immer die LSB-Startadresse Adressen werden immer byteweise gezählt Speicherzugriff entweder Ziel oder Quelle Falsch: MOV [20],[24] 1-Address-Befehle ohne Operandenlänge erfordern Typisierung NEG DWORD [20] ; Standard auch ohne DWORD NEG WORD [42] NEG BYTE [28]
11 Symbolische Adressen Pseudobefehl zur Definition von Präprozessor-Konstanten: EQU... Definiert Konstante für Präprozessor Assoziierung der Marke (Label) davor mit dem ersten Byte konstante1: EQU adresse1: EQU 0x1770 ; Konstante (wird evaluiert) ; Konstante
12 Symbolische Adressen Pseudobefehl zur Definition von Speicherbereichen: RESx n Reserviert Speicherbereich mit n Bytes/Words/DWords. Inhalt undefiniert Nutzung für Zwischenergebnisse, grössere Datenmengen Hat nichts mit Speicherreservierung in C (malloc) etc. zu tun! werte1: werte2: RESB 64 RESW 5 ; "Reserviere" 64 Bytes ; "Reserviere" 5 Worte
13 Symbolische Adressen Pseudobefehl zur Definition von Konstanten: Dx... Definiert vorbelegte Konstanten im Speicher Werte (meist) überschreibbar Nutzung als Tabelle (Übersetzung, Zeichenketten,... ) tabelle1: DB 17,55,68,71 ; Definiere 4 Bytes mit Wert tabelle2: DW 0x1234,0x8888,0x5432 tabelle3: DD 0x ,0x ,0x
14 Symbolische Adressen ; Nutzung MOV ECX,konstante1 MOV EAX,[adresse1] MOV [werte1],bl MOV AX,[tabelle2] ; => MOV ECX,3750 ; auch in Ausdrücken MOV ECX,konstante1*3 MOV EAX,[adresse1+16]
15 Indirekte Adressierung Mächtige Art der Adressierung Prozessor/Programm bestimmt die effektive Adresse selbst Effektive Adresse (EA): Adresse, auf die der Zugriff erfolgt dynamische/veränderliche Adressen Grundlage: Angabe eines Registers Verschiedene Arten und Berechnungsmethoden
16 Indirekte Adressierung ; Register Indirect [reg] MOV EAX,[EBX] ; reg = EAX-EDX, ESI, EDI, EBP, ESP ; Based Mode [reg+displacement] MOV EAX,12[EBX] MOV EAX,[EBX+12] ; Intel-Syntax ; nasm-syntax ; Based Indexed Mode [reg1+reg2] MOV EAX,[EBX][ESI] ; Intel-Syntax MOV EAX,[EBX+ESI] ; nasm-syntax
17 Indirekte Adressierung ; Based Indexed Mode with Displacement ; [reg1+reg2+displacement] MOV EAX,12[EBX][EDX] MOV EAX,[EBX+EDX+12] ; Intel-Syntax ; nasm-syntax ; Base and Scaled Index with Displacement ; [reg1+n*reg2+displ] n=2/4/8 MOV EAX,12[EAX][ECX*2] ; Intel-Syntax MOV EAX,[EAX+ECX*2+12] ; nasm-syntax
18 Indirekte Adressierung - Pro & Contra Berechnung von Speicheradressen (Zeiger/Pointer) Datenstrukturen Durchlaufen von Feldern (Arrays) Verschachteltes Auslesen von Adressen Problem: Anonymer Speicher Es ist nicht erkennbar, ob ein Wert eine Speicheradresse mit sinnvollem Inhalt ist! Folge: Zugriffe auf falsche Speicheradressen Falsche Ergebnisse oder Absturz, Speicherzugriffsfehler, Allgemeine Schutzverletzungen, Oops, Blue Screen,... Fehlererkennung teils mit Memory Management Unit (MMU) grobe Aufteilung des Speichers in nicht les/schreibbare Bereiche Speicherdebugging mit Werkzeugen: z.b. Valgrind erkennt nicht initialisierte Speicherbereiche etc.
19 Unbedingte Sprünge Veränderung im sequentiellen Ablauf Sprungbefehl JMP Veränderung des Instruction Pointer Getarntes MOV IP,... Sprungziel als Adressierungsart wie Quelle JMP 0x1234 JMP fehler MOV EAX,0x4567 JMP EAX fehler: JMP [EBX] ; Sprungziel IP = 0x1234 ; Sprungziel IP = fehler ; Sprungziel IP = 0x4567 ; Sprungziel IP = [EBX]
20 Stapelspeicher Stack/Stapel/Keller Patentiert 1957 von F.L. Bauer und K. Samelson (TUM) Datenstruktur im Speicher LIFO-Struktur (Last In, First Out) Ablage von Daten selbstorganisierend Benutzer muss sich nicht um Adressen kümmern Zugriffsfunktionen kapseln Datenorganisation Operationen PUSH x Element von Quelle x auf den Stapel legen POP x Element vom Stapel holen in in Ziel x schreiben Sprachen/Systeme, die im wesentlichen mit Stack arbeiten: Forth, Open Firmware (OpenBoot), PostScript, Java-Virtual-Machine (JVM)
21 Stapelspeicher allgemeines Beispiel: (Konstanten erst ab möglich) PUSH 1 PUSH 23 PUSH 42 POP -> 42 POP -> 23 POP -> 1 Stapelinhalt <leer> <leer>
22 Stapelverwaltung Stapel wächst zu kleineren Adressen hin SP Stack Bottom Hauptspeicher Adresse n + 4 Adresse n + 3 Adresse n + 2 Adresse n + 1 Adresse n Richtung SP Stack Bottom Hauptspeicher Adresse n Adresse n - 1 Adresse n - 2 Adresse n - 3 Adresse n besitzt Zeiger auf Stapel Stackpointer (ESP) ESP zeigt auf die Adresse des obersten Stapelwertes Nachbildung von PUSH <Quelle> SUB ESP,4 MOV [ESP],<Quelle> Nachbildung von POP <Ziel> MOV <Ziel>,[ESP] ADD ESP,4 Richtung
23 Stapelanwendung Ziel/Quelle: alle Adressierungsarten mit 16/32 Bit ERA: Bitte keine Tricks mit Vermischungen! Kurzzeitiger Zwischenspeicher Retten von Registern Unterprogramme Beispiel: MOV EAX, 1 MOV EBX, 2 PUSH EAX PUSH EBX POP EAX ; jetzt ist EAX = 2 POP EBX ; jetzt ist EBX = 1 Problem: Anzahl PUSH = Anzahl POP, sonst Absturzgefahr...
24 Unterprogramme Spezielle Sprungbefehle (80386: CALL, RET) CALL speichert IP des nächstens Befehls auf dem Stapel und springt zur angegebenen Marke (Pseudo-80386): ; CALL x entspricht PUSH befehl_nach_call JMP x befehl_nach_call:... ; 32 Bit! RET holt einen 32-Bit-Wert vom Stapel und springt dorthin: ; RET entspräche (gibt es so aber nicht!) POP EIP ; impliziter Sprung Nutzung für gemeinsame Unterprogramme/Funktionen/etc. Aufgerufener Code kehrt mit RET automatisch zum Aufrufer zurück
25 CALL/RET Beispiel Hauptspeicher 1010h 1011h 1012h... MOV EAX, 1234h CALL EAX... Unterprogrammaufruf 1234h (erster Befehl) Unterprogrammrueckkehr RET
26 Rekursionen Funktion ruft sich selbst direkt oder indirekt wieder auf. Beispiel: n! = fak(n) = { n fak (n 1) für n 1 1 für n = 0 CALL/RET erlauben Rekursion Stolpersteine: Stack muss ausreichend groß sein Abbruchbedingung muss stimmen
FAKULTÄT FÜR INFORMATIK
FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Arndt Bode Einführung in die Rechnerarchitektur Wintersemester 2016/2017 Zentralübung
MehrAssembler - Adressierungsarten
Assembler - Adressierungsarten Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Adressierungsarten 1/31 2008-04-01
MehrERA-Zentralübung Maschinenprogrammierung
ERA-Zentralübung Maschinenprogrammierung M. Meyer LRR TU München 27.10.2017 Arithmetik mit 80386 Inhalt Rechenmodell Register Befehle Beispiele 80386-Rechenmodell Typisches Zwei-Address-Format Ziel :=
MehrAssembler. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg
Assembler Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2017/2018 V. Sieh Assembler (WS16/17) 1 15 Einleitung
Mehr6. Intel IA-32 Prozessoren Aufbau und Adressierungsarten
6. Intel IA-32 Prozessoren Aufbau und Adressierungsarten 6.1 Gegenstand der Vorlesung Interne Organisation - Architektur - Register - Statusbits - Speicherstruktur Basis-Adressierungsarten - direct - absolute
MehrERA-Zentralübung Maschinenprogrammierung
ERA-Zentralübung Maschinenprogrammierung M. Meyer LRR TU München 17.11.2017 Inhalt Aufgabe 3.1 Aufgabe 3.2 Aufgabe 3.3 Logische Operationen Schiebebefehle Weitere Befehle Registerübersicht Aufgabe 3.1
MehrAssembler Unterprogramme
Assembler Unterprogramme Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Unterprogramme 1/43 2008-06-03 Unterprogramme
MehrAssembler - Variablen
Assembler - Variablen Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Variablen 1/30 2008-04-21 Variablen Variablen
Mehrx86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013
x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 1 / 53 Inhaltsverzeichnis 1 Einführung 2 Assembler Syntax, Register und Flags 3 Hauptspeicher 4 Stack 5 Assemblerbefehle
MehrMaschinensprache. 2.5 x86 Speicherzugriff. Universität Mannheim
Maschinensprache 2.5 x86 Speicherzugriff Hauptspeicher Speicheraufbau Linearer, zusammenhängender Adressraum Kleinste adressierbare Einheit: 1 Byte Unterteilung in physikalischen, linearen und virtuellen
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Kapitel 22: Mima-X Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik
Mehr10. Die Adressierungsarten des MSP 430
10. Die Adressierungsarten 10.1 Übersicht über die Adressierungsarten 10.2 -Operanden 10.3 Indexregister mit Distanz 10.4 Symbolische (relativ zum ) 10.5 Absolute 10.6 Indirekte 10.7 Indirekte Adressierung
MehrRechnernetze und -Organisation. Teil B 2012 Tomislav Nad Karl C. Posch
Rechnernetze und -Organisation Teil B 2012 Tomislav Nad Karl C. Posch www.iaik.tugraz.at/content/teaching/bachelor_courses/rechnernetze_und_organisation/ 1 Two different assemblers GNU Assembler as : Uses
MehrFAKULTÄT FÜR INFORMATIK
FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Arndt Bode Einführung in die Rechnerarchitektur Wintersemester 2016/2017 Zentralübung
MehrRechnernetze und -Organisation. Teil B (30. März 2011) 2011 Michael Hutter Karl C. Posch
Rechnernetz R Teil B (30. März 2011) 2011 Michael Hutter Karl C. Posch www.iaik.tugraz.at/content/teaching/bachelor_courses/rechnernetze_und_organisation/ 1 Zeitplan für Teil B Mittwoch 23. März 2011 Mittwoch
MehrRechnerne etze und -O Organisatio on
Rechnernetze und -Organisation Rechnerne etze und -O Organisatio on Teil B (30. März 2011) 2011 Michael Hutter Karl C. Posch www.iaik.tugraz.at/content/teaching/bachelor_courses/rechnernetze_und_organisation/
Mehr9. Die Adressierungsarten des MSP 430
9. Die Adressierungsarten 9.1 Übersicht über die Adressierungsarten 9.2 -Operanden 9.3 Indexregister mit Distanz 9.4 Symbolische (relativ zum ) 9.5 Absolute 9.6 Indirekte 9.7 Indirekte Adressierung mit
MehrDaniel Betz Wintersemester 2011/12
Daniel Betz Wintersemester 2011/12 Digitally signed by daniel.betz@daniel-betz.com Date: 2011.12.04 17:24:40 +01'00' Insgesamt 16 Register von je 16 Bit (=WORD) Breite Untere 8 Register auch als 2 Register
Mehr... Adressierung und Befehlsfolgen (1) Speicherbelegung. Hauptspeicheradressen. Inhalt von Speicherbelegungen: Operanden - Zahlen - Zeichen Befehle
Adressierung und Befehlsfolgen (1) Speicherbelegung Hauptspeicheradressen Inhalt von Speicherbelegungen: Operanden - Zahlen - Zeichen Befehle Address 0 1 i k 2-1 n bits...... word 0 word 1 b n-1 b 1 b
MehrTechnische Informatik 2 Adressierungsarten
Technische Informatik 2 Adressierungsarten Prof. Dr. Miroslaw Malek Sommersemester 2009 www.informatik.hu-berlin.de/rok/ca Thema heute X-Adressmaschine 0-Adressmaschine 1-Adressmaschine 2-Adressmaschine
MehrFAKULTÄT FÜR INFORMATIK
FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Martin Schulz Einführung in die Rechnerarchitektur Wintersemester 2017/2018 Lösungsvorschlag
MehrBetriebssystembau (BSB)
Betriebssystembau (BSB) 4. Übung http://ess.cs.tu-.de/de/teaching/ws2013/bsb/ Olaf Spinczyk olaf.spinczyk@tu-.de http://ess.cs.tu-.de/~os AG Eingebettete System Informatik 12, TU Dortmund Agenda Aufgabe
MehrRechnernetze und Organisation
Framework für Assignment A2 1 Übersicht Framework für Assignment A2 WH: Aufgabenstellung Klassen und Methoden Getting started Erste Instruktion aus Testdaten dekodieren 2 Aufgabenstellung Instruction-Set
MehrÜbungsblatt 10 (Block C 2) (16 Punkte)
georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de pascal.libuschewski [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2016 Übungsblatt 10 (Block C 2) (16
Mehrx86-assemblerprogrammierung
x86-assemblerprogrammierung Inhalt Literatur Register Speicherverwaltung Adressierung Stackverwaltung Datentypen und Befehlssatz Befehlskodierung Dandamudi : Intruduction to Assembly Language Programming
MehrBetriebssystembau (BSB)
Betriebssystembau (BSB) 4. Übung http://ess.cs.tu-dortmund.de/de/teaching/ws2015/bsb/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik
MehrRechnern netze und Organisatio on
Rechnernetze und Organisation Subroutines 1 Übersicht Motivation Bibliotheken Call und Return Stack Parameterübergabe Lokale Variablen Shared Libraries Interrupts und Exceptions 2 Reusability von Code
MehrVorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)
Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) J. Zhang zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme
MehrVorlesung Programmieren
Vorlesung Programmieren 17 Vom Programm zur Maschine Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),
MehrRechnerstrukturen. 7. Assembler. Inhalt. Vorlesung Rechnerstrukturen. Assemblerprogrammierung SML-CPU. SML-Assembler. Binden
Rechnerstrukturen 7. Assembler Assemblerprogrammierung SML-CPU Inhalt SML-Assembler Adressierungsarten Instruktionssatz Assembler-Direktiven Binden 7.2 1 Maschinensprache Instruktion = Bitkombination Für
MehrMikrocomputertechnik. Unterprogramm
Unterprogramm Ein Teilproblem wird entweder zur mehrmaligen Verwendung oder zur Programmstrukturierung als Unterprogramm codiert. Ein Unterprogramm wird von einem übergeordneten Programm (Hauptprogramm)
MehrTeil 1: Prozessorstrukturen
Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium
MehrU23 Assembler Workshop
Ike e.v. http://koeln.ccc.de 2016-11-05 Überblick 1 CPU, Assembler Überblick x86 x86 Assembler 2 RAM, Stack, Calling Conventions Stack Calling Conventions Stackframes 3 Branches Jumps 4 Speicher, C-Interface
MehrBetriebssystembau (BSB)
Betriebssystembau (BSB) 4. Übung http://ess.cs.tu-dortmund.de/de/teaching/ws2012/bsb/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik
MehrDer Intel 8086 Reto Gurtner 2005
Der Intel 8086 Reto Gurtner 2005 1 1. DIE INTERNEN REGISTER... 3 1.1 ALLGEMEINE REGISTER AX, BX, CX UND DX... 3 DAS AX-REGISTER... 4 DAS BX-REGISTER... 4 DAS CX-REGISTER... 5 DAS DX-REGISTER... 5 1.2 DIE
MehrGrundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes
Grundlagen der Informatik III Wintersemester 2010/2011 4. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la
MehrÜbung zu Betriebssysteme
Übung zu Betriebssysteme Threadumschaltung 7. & 10. Dezember 2017 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Verteilte
MehrKodieren von Anweisungen im Binärformat für Maschinen quasi natürlich, zumindest effizient. Für Menschen hingegen ist Binärformat schwierig
2.1 Einleitung Kodieren von Anweisungen im Binärformat für Maschinen quasi natürlich, zumindest effizient Hinsichtlich Zuverlässigkeit (digital vorteilhafter als analog) Für Menschen hingegen ist Binärformat
MehrTECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl
MehrU23 Assembler Workshop
Ike e.v. http://koeln.ccc.de 2016-11-05 Überblick 1 CPU, Assembler Überblick x86 x86 Assembler 2 RAM, Stack, Calling Conventions Stack Calling Conventions Stackframes 3 Branches Jumps 4 Speicher, C-Interface
MehrTeil 1: Prozessorstrukturen
Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium
MehrAdressierungsarten des 6809 (Forts.)
Adressierungsarten des 6809 (Forts.) Zusammenfassung zur indizierten Adressierung: 19 Beispiel-Programm 1 für 6809 6809-Assemblerprogramm zur Suche nach Leerzeichen (space, tab, return) in einem String:
MehrÜbung zu Betriebssysteme
Übung zu Betriebssysteme Threadumschaltung 6. & 8. Dezember 2017 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Verteilte Systeme
MehrHinweise 80x86-Architektur
Hinweise 80x86-Architektur Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Hinweise 80x86-Architektur
MehrOffenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...
0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement
MehrVorlesung Programmieren
Vorlesung Programmieren 16 Vom Programm zur Maschine Dr.-Ing. Erik Burger Version 1.0 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
MehrDATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE
D - CA - IV - AA - 1 HUMBOLDT-UNIVERSITÄT ZU BERLIN INSTITUT FÜR INFORMATIK Vorlesung 4 DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE Sommersemester 2003 Leitung:
MehrARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen
ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen Aufgabenstellung: - das beigefügte Assembler-Programm schrittweise ausführen - sich mit der Handhabung der Entwicklungswerkzeuge
MehrZusammenfassung der Assemblerbefehle des 8051
Zusammenfassung der Assemblerbefehle des 8051 Seite 1 von 5 Befehl Bezeichnung Syntax Wirkung / Beispiel Befehle zum Datentransfer MOV Move MOV [Ziel],[Quelle] MOV P1,P3 Kopiert den Inhalt von P3 nach
MehrRechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09
Rechnerorganisation Mathematische Grundlagen (1) Boolesche Algebren: : BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten (6,7) Sequentielle Schaltungen (8) Programmierbare Strukturen (9) Rechneraufbau
MehrStack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET
Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET Stack, Stackpointer, UP Stack (Stapel, FIFO) wird benötigt UP-Ruf:
Mehr"Organisation und Technologie von Rechensystemen 4"
Klausur OTRS-4, 29.09.2004 Seite 1 (12) INSTITUT FÜR INFORMATIK Lehrstuhl für Rechnerarchitektur (Informatik 3) Universität Erlangen-Nürnberg Martensstr. 3, 91058 Erlangen 29.09.2004 Klausur zu "Organisation
MehrSchritt Aktion Erläuterung 1 UBRR auf 25 setzen Baudrate auf 9600 TXEN-Bit von UCSRB auf 1 setzen
Das Attiny-Projekt Unterprogramme in Assembler 1 Unterprogramme Unterprogramme haben wir schon im Zusammenhang mit BASCOM kennen gelernt. Auch Assemblerprogramme können durch Unterprogramme strukturiert
MehrAssembler-Programmierung
Assembler-Programmierung Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Assembler-Programmierung 1/48 2012-02-29 Assembler-Programmierung
MehrKap.2 Befehlsschnittstelle. Prozessoren, externe Sicht
Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen
MehrRechnergrundlagen SS Vorlesung
Rechnergrundlagen SS 2007 3. Vorlesung Inhalt Zahlensysteme Binäre Darstellung von Integer-Zahlen Vorzeichen-Betrag Binary Offset 1er-Komplement 2er-Komplement Addition und Subtraktion binär dargestellter
Mehrx86-assemblerprogrammierung
x86-assemblerprogrammierung von Michael Röhrs (Ergänzend zum Vortrag am 25.04.01) Einleitung Die Familie der x86-prozessoren gehört zur Klasse der CISC-Prozessoren ( Complex Instruction Set Computer ).
Mehr2. Aufgabenblatt Musterlösung
2. Aufgabenblatt Musterlösung Technische Informatik II Sommersemester 2011 Problem 2: Assembler Syntax Register eines 32-bit Intel-Prozessors: 16 bits 8 bits 8 bits general purpose registers EAX Accumulator
MehrWas kann ein Assembler?
Assemblerprogrammierung Assembler und Maschinensprache Befehle und Pseudo-Befehle C-Konstrukte in Assembler übersetzt Aufrufkonventionen (ABI) Der netwide assembler nasm Binärformate Was ist ein Assembler?
MehrAssembler-Unterprogramme
Assembler-Unterprogramme Rolle des Stack Prinzipieller Ablauf Prinzipieller Aufbau Unterprogramme void main(void) int sub(int i) { { int i,k; return i*2; i = sub(13); } k = sub(14); } Wie macht man das
MehrInstitut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.
Kontrollstrukturen Informatik II SS 2004 Teil 4: Assembler Programmierung Sprünge (bedingte und unbedingte) If-then-else, Case Loop (n Durchläufe) While (Abbruchbedingung) Institut für Informatik Prof.
Mehr7 Ein einfacher CISC-Prozessor
7 Ein einfacher CISC-Prozessor In diesem Kapitel wird ein einfacher Prozessor vorgestellt. Die Architektur, die wir implementieren, wurde von R. Bryant und D. O Hallaron entworfen und verwendet eine Untermenge
MehrH. Intel x86 CPU. Höhere Informatik. Systemprogrammierung: - Betriebssystemkonzepte, Ein- & Ausgabe
H. Intel x86 CPU Historische Entwicklung des x86 Registersatzes. Complex Instruction Set Computer (CISC), Deskriptoren & Adressierung, Cacheausstattung. Höhere Informatik Systemprogrammierung: - Betriebssystemkonzepte,
MehrComputersysteme. Stacks Anwendung in der Assembler-Programmierung
Computersysteme Stacks Anwendung in der Assembler-Programmierung 1 Unterprogramme Betrachten wir zunächst folgendes Programm m_mod_n : /Berechne m modulo n für positive Integerwerte m und n. /Beim Programmstart
MehrArithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9
Arithmetik, Register und Speicherzugriff Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik und Zuweisungen Einfache Arithmetik mit Zuweisung C Programm: a = b + c; d = a e; MIPS Instruktionen: Komplexere
MehrBetriebssystembau (BSB)
Betriebssystembau (BSB) 4. Übung https://ess.cs.tu-dortmund.de/de/teaching/ws2017/bsb/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de https://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik
Mehr2. Rechnerarchitektur 2.1 einfache Computer
Fakultät Informatik Institut Systemarchitektur Professur Rechnernetze WS 2012 LV Informatik-I für Verkehrsingenieure 2. Rechnerarchitektur 2.1 einfache Computer Dr. rer.nat. D. Gütter Mail: WWW: Dietbert.Guetter@tu-dresden.de
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013. Vorlesung 9, Dienstag 18.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 9, Dienstag 18. Dezember 2012 (Performance Tuning, Profiling, Maschinencode) Prof. Dr.
MehrZusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S ]
2.1.2 Behandlung von Unterbrechungen (Interrupts) Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S. 582-585] t 1 : MAR (PC) t 2 : MBR Memory[MAR] PC
MehrBeim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:
1 ADRESSIERUNG IN MMIX Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: no base address is close enough to the address A! relative address
MehrGrundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes
Grundlagen der Informatik III Wintersemester 2010/2011 7. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la
MehrMikrorechentechnik 1. Befehlssatzarchitektur. Professur für Prozessleittechnik Wintersemester 2011/2012
Fakultät Elektrotechnik und Informationstechnik, Professur für Prozessleittechnik Mikrorechentechnik 1 Befehlssatzarchitektur Professur für Prozessleittechnik Wintersemester 2011/2012 Qualifikationsziele
Mehra) Erläutern Sie die Begriffe CISC und RISC. Worin liegen die Unterschiede zwischen diesen beiden Architekturen?
VU Technische Grundlagen der Informatik Übung 6: Mikroprozessoren, Pipelining.79, WS20 Übungsgruppen: Mo., 2.2. Fr., 6.2.20 Aufgabe : Theoriefragen a) Erläutern Sie die Begriffe CISC und RISC. Worin liegen
MehrInformatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5
Informatik 1 (251-0832-00) D-MAVT F2010 Schleifen, Felder Nachbesprechung Blatt 3 Aufgabe 1 ASCII... A > a Vorsicht: Lösen Sie sich von intuitiven Schlussfolgerungen. A ist nicht grösser als a, denn in
MehrTechnische Informatik II Rechnerarchitektur
Technische Informatik II Rechnerarchitektur MMIX-Crashkurs Matthias Dräger, Markus Rudolph E-Mail: mdraeger@mi.fu-berlin.de rudolph@mi.fu-berlin.de www: tinyurl.com/mmix2010 www.matthias-draeger.info/lehre/sose2010ti2/mmix.php
MehrDie Mikroprogrammebene eines Rechners
Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrMikrocomputertechnik. Adressierungsarten
Adressierungsarten Ein Mikroprozessor bietet meist eine Reihe von Möglichkeiten, die Operanden für eine Rechenoperation zu bestimmen. Diese Möglichkeiten bezeichnet man als Adressierungsarten. unmittelbare
MehrMesswerterfassung mit Mittelwertbildung
Fak. Elektrotechnik & Informationstechnik Institut für Automatisierungstechnik Professur für Prozessleittechnik Aufgabe 1 Messwerterfassung mit Mittelwertbildung Ein einfaches Messgerät Messaufgabe In
MehrÜbung Praktische Informatik II
Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 20.03.09 4-1 Heutige große Übung Ankündigung
MehrRechnerorganisation. H.-D. Wuttke `
Rechnerorganisation Mathematische Grundlagen (1) Boolesche Algebren: BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten (6,7) Sequentielle Schaltungen (8) Programmierbare Strukturen (9) Rechneraufbau
Mehr05. Assembler-Programmierung. Datenstrukturen des ATMega32. Literatur
0. Assembler-Programmierung Datenstrukturen des ATMega32 Literatur mikrocontroller.net avr-asm-tutorial.net asm Alles über AVR AVR-Assembler-Einführung Assembler AVR-Aufbau, Register, Befehle 2008: ouravr.com/attachment/microschematic/index.swf
Mehr32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78
32 Bit Konstanten und Adressierung Grundlagen der Rechnerarchitektur Assembler 78 Immediate kann nur 16 Bit lang sein Erinnerung: Laden einer Konstante in ein Register addi $t0, $zero, 200 Als Maschinen
MehrCOMPILER & CODE ANALYSE. Eine Einführung in die Code Analyse auf Grundlage von Compilern und deren Optimierung. 1
1 COMPILER & CODE ANALYSE Eine Einführung in die Code Analyse auf Grundlage von Compilern und deren Optimierung. 1 INHALT Einleitung Werkzeuge Compiler Aufbau Optimierung Beispiel Code Analyse Einführung
MehrMikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen
Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Die Programmiersprache C Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 14. Mai 2015 Hallo, Welt! main() { printf("hallo, Welt!\n"); } main:
MehrPC/XT/AT ASSEMBLER-BUCH
PC/XT/AT ASSEMBLER-BUCH Alle Befehle + Makro-Assembler KLAUS-DIETER THIES t
MehrComputer-Systeme Teil 11: Routinen
Computer-Systeme Teil 11: Routinen Computer-Systeme WS 12/13 - Teil 11/Routinen 03.12.2012 1 Übersicht Stack Subroutinen Makros CPU-Modi Traps Computer-Systeme WS 12/13 - Teil 11/Routinen 2 Die einzelnen
MehrB1 Stapelspeicher (stack)
B1 Stapelspeicher (stack) Arbeitsweise des LIFO-Stapelspeichers Im Kapitel "Unterprogramme" wurde schon erwähnt, dass Unterprogramme einen so genannten Stapelspeicher (Kellerspeicher, Stapel, stack) benötigen
MehrVorlesung Rechnerarchitektur
Vorlesung Rechnerarchitektur Sommersemester 2017 Carsten Hahn 8. Juni 2017 Agenda Grundlagen: Wiederholung Kontroll-Strukturen Stack-Speicher Unterprogramme I Unterprogramme II Call-by-Value (CBV) vs.
Mehr