Befehlssatz/Assembler Flashcards
1
Q
Befehlssatzarchitektur
A
- instruction set achitecture (ISA): vollständige Abstraktion der Hardware
- beinhaltet die implementierten befehlssätze
- Neuerungen können durch Befehls Erweiterungen hinzugefügt werden
- Unterscheidung erfolgt nach:
- > befehlssatztyp, Verarbeitungsbreite, Registerzahl, Addressierungsarten
- Umsetzung kann in einem Mikroprozessor Familie oder in einer virtuellen Maschine erfolgen
2
Q
Befehlsarten
A
- Arothmetische und logische Befehle
- Transferbefehle
- Sprungbefehle
- in manchen ISAs auch weitere befehlsarten -> CISC
3
Q
Arithmetische und logische Befehle
A
- immer drei Operanden:
- > 2 Quelloperanden (sources)
- > 1 Zieloperand (destination)
- > add t0, t2, t1 ;
- > t0 = t1 + t2
4
Q
Transferbefehle
A
- dienen dem Kopieren von Daten innerhalb des Systems
- > Ziel und Quelle können Register oder Speicherplätze sein
- > Daten beim Transfer nicht verändert
- > Transfer kann ein und mehrere Bytes beinhalten
- > ldb t0, 64(t1) ;
- > t0 = M[ t1 + 64] : lade ein Byte von der Adresse (t1 + 64) in das Register t0
5
Q
Sprungbefehle
A
- jump oder branch: dienen der Programmflusssteuerung
- werden mit folgenden C Anweisungen verwendet:
- > Verzweigungen (if oder switch Anweisungen)
- > wiederholstrukturen( for, do- while oder while schleifen )
- > Unbedingte programmsprünge
- > Funktionsaufrufe
6
Q
Register Operanden
A
- meisten Operationen nutzen Register als Quell- oder zieloperanden
- Register sind direkt mit der ALU verbunden -> Registerzugriffe sind sehr schnell
- > Registerbreite ist Abhängig von der ISA
- es kann der ganze oder Teile des Inhalt verwendet werden -> byte(8bits) halfword (16 Bits), Word (32bit), Doubleword (64 Bit)
- einige Isas (RISC) verlangen dass Operanden von arithmetischen und logischen Operationen immer in Registern liegen
7
Q
Speicher Operanden
A
Daten die nicht in Registern sind müssen aus dem Hauptspeicher geladen werden.
- Verwendung je nach ISA:
- > in transferoperationen (immer möglich)
- > in arithmetischen und logischen Operationen
- > Unterscheidung: 1 adress, 2 adress und 3 adress ISAs
- Speicher immer Byte addressierbar -> jede Adresse identifiziert ein Byte
8
Q
Register vs Speicher Operationen
A
- für jede ISA lässt sich sagen:
- > registerzugriffe schnelle als Speicher
- > Daten im Speicher benötigen zusätzliche Load und Store Operationen
- > Compiler versuchen immer Register zu verwenden
9
Q
Immediate Operand
A
- sind Konstanten, die direkt in einer Instruktion angegeben werden
- > addi x22, x22, 4 ; x22 = x22 + 4
- machen den häufig genutzten Fall schnell:
- > kleine Zahlenwerte für Konstanten sind üblich
- > vermeiden speicherzugriffe
10
Q
Maschinencode
A
Instructionen werden binär kodiert in Maschinen Code und werden im Programmspeicher abgelegt
- anhängig von der ISA
- für Menschen nur schwer lesbar
11
Q
Assembler code
A
Eine Maschinen orientierte Sprache der zweiten Generation
- im Gegensatz zum Maschinencode:
- > verständliche Symbole im Textform (add)
- > symbolische Adressen und registernamen
- machinenabhhängig und kann auf andereren ISAs nicht ünverändert genutzt werden
12
Q
RISC V Prozessor
A
- wurde an der Uni Berkeley entwickelt
- Besonderheiten des Befehlsatzes:
- > freie mudlar erweiterbare befehlssatzarchitektur
- > sehr einfache Grundstruktur
- > viele verschiedene Umsetzungen
13
Q
Befehlssatzerweiterung
A
- befehlssätze lassen sich erweitern
- RISC V bietet bereits vordefinierte Erweiterung
- Vorteil: geringer Hardware bedarf
- Anwendungs und systemspezifisch erweiterbar
14
Q
RISC V Registersatz
A
- 32 General Purpose Register (x0…x31)
- Programm Counter nicht Bestandteil
- x0 das Zero Register
- Registersatz abhängig vom befehlssatz
15
Q
ABI
A
- application Binary Interface
- Binärschnittstelle definiert die Interaktion zwischen Software und Hardware eines Computers
- definiert uA:
- > Verwendung der Prozessorregister
- > Richtung des Stacks
- > Format der Fliesskomma zahlen