Цитата:
Сообщение от 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;