- 1
- 2
- 3
mov ecx, 200h - 1
not ecx
and eax, ecx
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+205.2
mov ecx, 200h - 1
not ecx
and eax, ecx
Лень считать в уме
Для смертных объясните, пожалуйста.
З.Ы. Бля, ниже всё это уже написали :(
компиляторы ассемблера ничего не оптимайзят при компиляци, лол.
это выравнивание значения в eax вниз по фактору 200h
Можно было написать одной инструкцией:
and eax, 0FFFFFE00h
т.е. обнуление младших 9 битов, а не 17;)
Говногость, компилятор при компиляции, но не ассемблер при ассемблировании :-P
>младшие 17бит в еах
9 бит ))
and eax, NOT 1FFh
— такое ассемблеры уже не понимают?
В любом случае, за использование дополнительного регистра хочется взять и ***ть.
Вообще-то после not ecx в ecx будет лежать 0xFFFFFE01.
Никакое это не выравнивание.
Про дополнительный код никто не слышал?
ведь это не neg, а not.