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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Befehlsarten

A
  • Arothmetische und logische Befehle
  • Transferbefehle
  • Sprungbefehle
  • in manchen ISAs auch weitere befehlsarten -> CISC
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Arithmetische und logische Befehle

A
  • immer drei Operanden:
  • > 2 Quelloperanden (sources)
  • > 1 Zieloperand (destination)
  • > add t0, t2, t1 ;
  • > t0 = t1 + t2
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Befehlssatzerweiterung

A
  • befehlssätze lassen sich erweitern
  • RISC V bietet bereits vordefinierte Erweiterung
  • Vorteil: geringer Hardware bedarf
  • Anwendungs und systemspezifisch erweiterbar
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Befehlsformat des RV32i Befehlsatz

A

Beinhaltet 6 verschiedene befehlsformate wobei jeder Befehl genau 32 Bit lang ist

  • R-, I-, S-, B-, J-, U- Type
17
Q

R Format Instruktionen

A
    • arithmetische logische Register Register Operationen
  • opcode: beschreibt den operation Code (add, sub, ld…) (7bits)
  • rd: enthält Ziel Register nummer (5bits)
  • rs1: registernummer des ersten Operanden (5bits)
  • rs2: regusternummer des zweiten Operanden (5bits)
  • func3 und func7: geben operationsspeziefische Informationen
  • > func3 3 Bits (zwischen add und sub unterschieden)
  • > funk7 7 Bits
18
Q

Logische schiebe Operation

A
  • immediate beschreibt um wie viele Stellen der Wert geschoben wird
  • schieben nach links: frei stellen mit 0 gefüllt. Entspricht einer Multiplikation mit 2^i
  • schieben nach rechts: frei stellen mit 0 gefüllt. Entspricht einer Division durch 2^i
19
Q

I Format Instruktionen

A
  • lade und arithmetische, logische Operationen mit immediate

verwendet für:
-> immediate arithmetic : rs1: Register Nummer 1 Operanden
Immediate: Konstante für den zweiten Operanden

-> ladeoperationen: rs1: basisadtessregister
Immediate: Offset zur basisadresse

20
Q

S Format Instruktionen

A
  • Instruktion zum speichern von Daten
  • rs1: enthält Basis adress Register
  • rs2: enthält die Daten
  • Immediate: enthält Offset der Basis Adresse (auf zwei Feldern aufgeteilt)
21
Q

B Format Instruktionen

A
  • für bedingte Sprünge verwendet
  • springe zur angegeben Adresse wenn Bedingung erfüllt ist
  • sonst arbeite mit der nächsten Adresse weiter
    -> beq rs1, rs2, L1
    Springe zu L1 wenn rs1=rs2
  • rs1,rs2 : Operanden für die Bedingung
  • Immediate: vorzeichenbehaftetes 13 Bit Offset
  • relative Sprünge: relativ zum aktuellen PC
    Zieladresse= PC + Immediate
22
Q

J Typ

A

Sprungoperationen

23
Q

U Typ

A

Immediate Instruktion