1. Assembler / Говнокод #1214

    +123

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    cmp	  eax,0
       je	  exitp
      mov	 eax,1
       ret
    exitp:
       xor	  eax,eax
       ret

    Запостил: guest, 17 Июня 2009

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

    • индусы в ассемблере? нет пути! плюсую, но только в том случае если это единственный переход на exitp:
      Ответить
    • #1, даже если не единственный - нах он тут нужен?
      Ответить
    • 1:
      @#2
      Потому что в eax может быть и не 1 и не 0.
      Ответить
    • #3, протупил.. теперь ясно.
      Ответить
    • [quote]индусы в ассемблере?[/quote]
      Гы, почему сразу индусы? Славяне!
      Ответить
    • [quote]
      Гы, почему сразу индусы? Славяне![/quote]
      O Shit!!! Тем более нет пути!
      Ответить
    • наплюсили то
      Ответить
    • nevorek:
      ебать, вы ламачки. шож ты код постишь, если не отдупляешь для чего он. про флаги слышали? или ассемблер переводите на си в голове и уже тогда оцениваете необходимость команд.

      зы. еще раз улыбаюсь с вас, хе
      Ответить
    • temple:
      По-любому строки 5-7 лишние. je на 4. А это как раз-таки и похоже на работу транслятора. Хотя нормальный транслятор соптимизирует... Если без jxx, setxx и пр., можно как-нибудь так:
      add eax,not 0
      sbb eax,eax
      neg eax
      Ответить
    • постер:
      nevorek, ламачок вы наш, я то вдупляю, а вы? о каких флагах идёт речь? Если еах = 0, ZF=1 >> xor eax,eax.
      temple, какой транслятор, если писать на ассемблере ))))?
      Ответить
    • Хуррагандуспани-Хустан ))):
      А на хрена сравнение:
      cmp eax, 0

      Все равно после exitp обнуляется.
      Ответить
    • Xaionaro:
      #10: "транслятором" вполне может являться "gcc -S"
      Ответить
    • Анонимоуссс:
      Ну вы дайоте, на то он и гавнокод что автор (да скорее всего это он) его увидел, посчитал говном, запостил сюда.
      Я же смотрю тут Капитан Очевидность поясняет: "Все равно после exitp обнуляется". Долго думал? =)
      Ответить
    • Без контекста трудно понять.
      Ответить
      • Это превращение числа в булевый флаг. Говно в том, что eax обнуляется когда оно и так равно нулю.
        Ответить

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