Показать сообщение отдельно
  #6  
Старый 06.09.2014, 19:07
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Bargest
Только такую функцию нельзя использовать с модификатором stdcall
Я написал что написал, а это функция с моделью вызова register. Не надо ля-ля. С использованием мнемнонического имени Value вместо EAX соглашусь. А модификатор assembler давно уже признан устаревшим и не несет никакого смысла.

На плохом форуме кто-то написал быдлокод для Int64. Моя версия будет выглядеть так:
Код:
function MostSignificantBit(Value: Int64): LongInt; overload; // к предыдущей, тоже overload
asm
        BSR EAX, EDX
        JZ @@lo
        SHL EAX, 1
        RET
@@lo:
        BSR EAX, EAX
end;
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием