Übung 9 Flashcards
1
Q
Welche Szenarien führen dazu, dass die Parity Flag auf 1 gesetzt wird?
- Letzte ASM Berechnung hatte gerade Anzahl an 1-Bits.
- Letzte ASM Berechnung hatte ein negatives Ergebnis.
- MOV EAX, 0AD01h
- MOV EAX, 0xC812
A
- Letzte ASM Berechnung hatte gerade Anzahl an 1-Bits.
- MOV EAX, 0xC812
2
Q
Welcher Sprungbefehl würde nach dem folgenden Code springen?
MOV AL, 6Dh CMP AL, 0AFH
- ja
- jb
- jz
- je
A
- 0AFh > 6Dh
- -> 6Dh - 0AFh < 0
- -> jump if below zero
- jb
3
Q
Was steht im Register EAX, nachdem der folgende Code ausgeführt wurde?
MOV EAX, 0F42Ah XOR EAX, 0B2D6h ADD EAX, 65E0h
A
- 0F42Ah =
- 1111|0100|0010|1010
- 0B2D6h
- 1011|0010|1101|0110
- 0F42Ah XOR 0B2D6h = 46FCh
- 0100|0110|1111|1100
- 65E0h
- 0110|0101|1110|0000
- 46FCh ADD 65E0h
- 1010|1100|1101|1100
4
Q
Welche Aussagen sind wahr?
Wählen Sie eine oder mehrere Antworten:
- Bei der stdcall Konvention werden die Parameter von links nach rechts auf den Stack gelegt.
- Wird die Funktion f(int a, int b, int c) nach der cdecl Konvention aufgerufen, dann wird zuerst der Wert ‘c’ auf den Stack gelegt.
- Das Dekrementieren des ESP Registers um 4 am Ende einer Funktion, entfernt ein 32 Bit Wort vom Stack.
- Bei der fastcall Konvention werden zur Beschleunigung Funktionsparameter über die Register übergeben.
A
- Bei der fastcall Konvention werden zur Beschleunigung Funktionsparameter über die Register übergeben.
- Wird die Funktion f(int a, int b, int c) nach der cdecl Konvention aufgerufen, dann wird zuerst der Wert ‘c’ auf den Stack gelegt.
5
Q
Warum ist eine der folgenden Zeilen anders als die anderen beiden?
1 MOV AL, a6h 2 MOV AL, 0xff 3 MOV AL, 0d4h
Wählen Sie eine Antwort:
- Der Wert in Zeile 2 ist zu groß, er passt nicht in das AL Register.
- Der Wert in Zeile 3 ist nicht in einem validen Zahlenformat angegeben.
- Der Compiler könnte den Wert in Zeile 1 mit einem Variablennamen verwechseln.
A
Der Compiler könnte den Wert in Zeile 1 mit einem Variablennamen verwechseln.