Показать сообщение отдельно
Старый 16.06.2011, 10:51   #7
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Проверка на четность

Сообщение от impersonalis Посмотреть сообщение
для проверки на чётность надо проверять младший бит
всегда считал что компилятор и сам справится с етой задачей, но отнюдь ((

; 13   : 	if(i%2)

	mov	edx, DWORD PTR _i$[esp+8]
	and	edx, -2147483647			; 80000001H
	jns	SHORT $LN5@wmain
	dec	edx
	or	edx, -2					; fffffffeH
	inc	edx
$LN5@wmain:
	je	SHORT $LN2@wmain

; 13   : 	if(i & 0x00000001)

	test	BYTE PTR _i$[esp+8], 1
	je	SHORT $LN2@wmain
как видим - результат с проверкой младшего бита намного короче.
(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
ABTOMAT (20.06.2011), den (16.06.2011), Hagrael (16.06.2011), impersonalis (16.06.2011), maxturbo (16.06.2011), St_AnGer (20.06.2011), Tadeus (16.06.2011)