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

    +205.2

    1. 1
    2. 2
    3. 3
    mov ecx, 200h - 1
    not ecx
    and eax, ecx

    Лень считать в уме

    Запостил: guest, 11 Марта 2009

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

    • fk:
      Для смертных объясните, пожалуйста.
      Ответить
    • Особо извращенный способ обнулить младшие 17бит в еах. Автор видимо был пьян.
      Ответить
    • такие вещи считает компилятор при компиляции, лол.
      Ответить
    • говнокодер:
      компиляторы ассемблера ничего не оптимайзят при компиляци, лол.

      это выравнивание значения в eax вниз по фактору 200h
      Можно было написать одной инструкцией:
      and eax, 0FFFFFE00h
      т.е. обнуление младших 9 битов, а не 17;)
      Ответить
    • Onotole:
      Говногость, компилятор при компиляции, но не ассемблер при ассемблировании :-P
      Ответить
    • mathaddict:
      >младшие 17бит в еах
      9 бит ))
      Ответить
    • Гость:
      and eax, NOT 1FFh
      — такое ассемблеры уже не понимают?
      В любом случае, за использование дополнительного регистра хочется взять и ***ть.
      Ответить
    • Эх вы, программеры.
      Вообще-то после not ecx в ecx будет лежать 0xFFFFFE01.
      Никакое это не выравнивание.
      Про дополнительный код никто не слышал?
      Ответить
    • ага клинануло маленько.
      ведь это не neg, а not.
      Ответить
    • Аццки извращённый способ обнулить ecx) зачёт))
      Ответить

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