Современные решения

для защиты Windows приложений

и восстановления исходного кода
Автор: xen. Дата публикации: 10.08.2004

Линейные преобразования в системах с фиксированной точкой


Следующая подпрограмма переводит дюймы в миллиметры, но также она может быть использована для любых линейных преобразований, для чего достаточно изменить коэффициент преобразования.

Числа предствалены в 32-битном формате с фиксированной точкой. Старшее слово содержит целую часть числа, а младшее слово - дробную часть. Предполагается, что используются только положительные числа.

Код использует 32-битные инструкции, но может быть откомпилирован и 16-битным компилятором.

; данные ConvFactor dw 26214 ;младший байт коэффициента преобразования 25.4 dw 25 ;старший байт Inches dw 32768 ;младший байт представления 12.5 дюймов dw 12 ;старший байт mMeters dw ? ;младший байт результата в мм dw ? ;старший байт ; код db 66h mov AX,Inches ;mov EAX,dword ptr ConvFactor db 66h mul ConvFactor ;результат в EDX:EAX mov CL,16 db 66h shr AX,CL ;shr EAX,16 mov mMeters,AX ;младший байт результата mov mMeters+2,DX ;старший байт


Комментарии

отсутствуют

Добавление комментария


Ваше имя (на форуме):

Ваш пароль (на форуме):

Комментарии могут добавлять только пользователи,
зарегистрированные на форуме данного сайта. Если Вы не
зарегистрированы, то сначала зарегистрируйтесь тут

Комментарий: