Übung 9 Flashcards
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
- Letzte ASM Berechnung hatte gerade Anzahl an 1-Bits.
- MOV EAX, 0xC812
Welcher Sprungbefehl würde nach dem folgenden Code springen?
MOV AL, 6Dh CMP AL, 0AFH
- ja
- jb
- jz
- je
- 0AFh > 6Dh
- -> 6Dh - 0AFh < 0
- -> jump if below zero
- jb
Was steht im Register EAX, nachdem der folgende Code ausgeführt wurde?
MOV EAX, 0F42Ah XOR EAX, 0B2D6h ADD EAX, 65E0h
- 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
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.
- 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.
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.
Der Compiler könnte den Wert in Zeile 1 mit einem Variablennamen verwechseln.