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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly