Ergebnis 1 bis 20 von 245

Thema: 0x12 = 18??? - Das (Computer-)Geek-Quiz

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Zitat Zitat von Cherry1 Beitrag anzeigen
    Code:
    mov ecx,8
    label_1:
    dec ecx
    call someproc
    test ebx,ebx
    jz label_2
    inc ecx
    jmp label_3
    label_2:
    dec ecx
    label_3:
    test exc, exc
    jnz label_1
    Wie kann man diesen Code weiter optimieren?
    Code:
    mov ecx,8
    label_1:
    dec ecx
    call someproc
    test ebx,ebx
    jz label_2
    inc ecx
    loop label_1
    jmp label_3
    label_2:
    dec ecx
    loop label_1
    label_3:
    Das dürfte so ziemlich das einzige sein, denke ich. Hab' allerdings auch noch nie auf einem Intel assembliert, könnte also leicht komplett falsch sein. <__<'
    Naja, und wenn man someproc vorher kennt, wären evtl. noch einige andere Sachen möglich (OK, Inlining z.B., aber halt noch anderes).

    Wobei natürlich auch die Frage ist, worauf man optimiert.

    Edit: Witnogargf ist da gerade passiert? o_O Wenn ich endlich mal was weiß! O__O

  2. #2
    Ich hatte mich geirrt. Ich wollte auf etwas hinaus, was bei DIESEM Beispiel keinen Sinn macht (self-modifying code: sub byte ptr [label2], 8), außerdem hatte ich versehentlich zweimal ecx verwendet (eigentlich sollte die Schleife über ecx und das inc/dec über edx laufen). Daher hab ich meine Frage schnell geändert. Aber offenbar zu langsam.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •