Befehlssatz und Assembler
Welcher Unterschied zwischen RISC-V und x86 beim Mechanismus bedingter Verzweigungen ist richtig?
- ARISC-V verzweigt anhand von Flags, bei x86 vergleichen Verzweigungsbefehle zwei Register direkt
- BKeine der beiden hat Befehle für bedingte Verzweigungen, das Sprungziel wird per Tabellenzugriff bestimmt
- CBei RISC-V vergleichen Verzweigungsbefehle zwei Register direkt, bei x86 verzweigt ein Befehl anhand der von einem Vergleichsbefehl gesetzten Flags
Antwort und Erläuterung anzeigen
Antwort: C. Bei RISC-V vergleichen Verzweigungsbefehle zwei Register direkt, bei x86 verzweigt ein Befehl anhand der von einem Vergleichsbefehl gesetzten Flags
Bei x86 vergleicht „cmp eax, ebx“ und setzt Flags (Bedingungscodes) wie Null und Übertrag, und das folgende „je“ oder „jl“ verzweigt anhand der Flags. RISC-V hat keine Flags; der Verzweigungsbefehl selbst vergleicht zwei Register, etwa „beq a0, a1, L“ oder „blt a0, a1, L“. Ohne impliziten Zustand wie Flags lassen sich Abhängigkeiten beim Umordnen und bei gleichzeitiger Ausführung von Befehlen leichter verfolgen.