Übung 8 Flashcards
x86 Assembler
Wahr oder Falsch?
Mithilfe des MMX Befehlssatzes können mehrere gleiche Integer-Berechnungen auf einmal ausgeführt werden.
Wahr
x86 Assembler
Wahr oder Falsch?
SSE Instruktionen arbeiten auf 64-Bit Registern.
Falsch, da SSE Instruktionen auf 128 Bit Registern arbeiten
x86 Assembler
Welche x86 Register sind jeweils gemeint?
- 16 Bit Stack Pointer
- Höherwertige 8 Bits des Basisregisters
- Code Segment
- 32 Bit Akkumulator Register
- 64 Bit Zählerregister
- SP
- BH
- CS
- EAX
- RCX
x86 Assembler
Berechnen Sie die Speicheradresse DS:SI im Real Mode für DS = 005Ch und SI = 4321h. Geben Sie das Ergebnis hexadezimal (Format xxxxxh, ohne Leerzeichen) an.
- Zuerst muss DS und SI in Dezimalzahlen umgewandelt werden
- DS: 005Ch = 0 * 16^3 + 0 * 16^2 + 5 * 16^1 + C * 16^0
- SI: 4321h = 4 * 16^3 + 3 * 16^2 + 2 * 16^1 + 1 * 16^0
- 005Ch = 92
- 4321h = 17185
- Physische Adresse = 92 * 16 + 17.185
- Physische Adresse = 18.657
- Physische Adresse in Dezimal umwandeln
- 18.657 / 16 = 1166 Rest 1
- 1166 / 16 = 72 Rest 14
- 72 / 16 = 4 Rest 8
- 4 / 16 = 0 Rest 4
- Ergebnis = 48141 = 48E1h
x86 Assembler
Welche Aussagen zur x86-Architektur sind wahr?
Wählen Sie eine oder mehrere Antworten:
a. Die SF Flag wird automatisch gesetzt, wenn eine Berechnung negativ war.
b. Das Prefix E bei Registern erweitert diese um ein Byte.
c. Der Befehl „shl AX, 8“ (shl = shift left) bewegt ein Byte von Register AL in das Register AH.
d. MMX Befehle rechnen in floating point precision.
- Die SF Flag wird automatisch gesetzt, wenn eine Berechnung negativ war.
- Der Befehl „shl AX, 8“ (shl = shift left) bewegt ein Byte von Register AL in das Register AH.
x86 Assembler
Konvertieren Sie den Big Endian Datenstring in Little Endian:
A9 6C DB 36 B5 3B E1 45 99 62
Geben Sie Ihre Antwort im gleichen Format an.
62 99 45 e1 3b b5 36 db 6c a9
x86 Assembler
Berechnen Sie das 8-Bit Zweierkomplement der Zahl -42. Geben Sie nur Ihre Antwort ohne Rechenweg und ohne Leerzeichen ein.
- |-42| = 42
- In Binär umwandeln
- 00101010
- Invertieren
- 11010101
- Da 42 ein negatives Vorzeichen hat muss man 1 addieren
- “ 11010101
- + 00000001
- Rechnung von rechts nach links
- 1 + 1 = 0 (mit einem Übertrag von 1)
- 0 + 0 + 1(Übertrag) = 1
- 1 + 0 = 1
- 0 + 0 = 0
- 1 + 0 = 1
- 0 + 0 = 0
- 1 + 0 = 1
- 1 + 0 = 1
- 11010110
11010110