Сборный / Говнокод #3989 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
mov ebx,eax
xor eax,ebx
mov eax,0
cmp eax,ebx
je metka1

Запостил: Xekep Xekep, (Updated )

Комментарии (8) RSS

    • А как же eax обнулить? Вдруг код дальше использует eax=0?
      mov ebx, eax
      xor eax, eax
      test ebx, ebx
      jz metka1
      Ответить
      • в этом случае можно и так:

        mov ebx, eax
        xor eax, eax ;zf = 0
        jz metka1 ;if (zf == 0) goto metka1

        т.е. целесообразно еще упростить:

        mov ebx, eax
        xor eax, eax
        jmp metka1
        Ответить
        • Jump здесь не так безусловен, как кажется на первый взгляд, и происходит только при ebx == 0.
          Алсо, после "xor eax, eax" zf == 1.
          Ответить
          • да, zf = 1;
            мну иногда переклинивает эта фишка:
            "если ноль значит еденица", и бывает путаюсь;

            хотя в принципе и с остальным тоже затуп...
            вот Arrest, правильно написал =)
            Ответить
  • Это компилятор выдавил или это рукописный код?
    Ответить
  • Конечно рукописный! Компиляторы такого говна на генерируют...
    Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8