Сообщение Re[4]: x64 команды в x32 среде Windows от 19.06.2018 9:58
Изменено 19.06.2018 9:59 ononim
Re[4]: x64 команды в x32 среде Windows
O>>Ноооо, можно перейти в 64х разрядную среду, сделать что нужно, и вернуться назад.
O>>Но компилятор таким трюкам конечно же не научить. Только асм, только хардкор.
кт>Во времена MS-DOS нечто похожее удавалось, но там среда мизерная, по сути отсутствовала. В какой-нибудь Windows 10 затраты на переключения убьют весь выигрыш от 64-разрядов посреди 32-х разрядной среды.
Не убьют, такие переключения происходят при каждом сисколле, так что если делать переключение перед какими то долгими вычислениями то все будет ништяк. С компилятором возится тоже вощемто нафиг не нужно, достаточно напистать честную 64хбитную длл, но зависящую только от ntdll.dll, затем с помощью этого трюка (для современных виндов требуется некоторая коррекция) вгрузить ее в АП wow64 процесса, получить адрес нужных экспортов и дергать за них.
O>>Но компилятор таким трюкам конечно же не научить. Только асм, только хардкор.
кт>Во времена MS-DOS нечто похожее удавалось, но там среда мизерная, по сути отсутствовала. В какой-нибудь Windows 10 затраты на переключения убьют весь выигрыш от 64-разрядов посреди 32-х разрядной среды.
Не убьют, такие переключения происходят при каждом сисколле, так что если делать переключение перед какими то долгими вычислениями то все будет ништяк. С компилятором возится тоже вощемто нафиг не нужно, достаточно напистать честную 64хбитную длл, но зависящую только от ntdll.dll, затем с помощью этого трюка (для современных виндов требуется некоторая коррекция) вгрузить ее в АП wow64 процесса, получить адрес нужных экспортов и дергать за них.
Re[4]: x64 команды в x32 среде Windows
O>>Ноооо, можно перейти в 64х разрядную среду, сделать что нужно, и вернуться назад.
O>>Но компилятор таким трюкам конечно же не научить. Только асм, только хардкор.
кт>Во времена MS-DOS нечто похожее удавалось, но там среда мизерная, по сути отсутствовала. В какой-нибудь Windows 10 затраты на переключения убьют весь выигрыш от 64-разрядов посреди 32-х разрядной среды.
Не убьют, такие переключения происходят при каждом сисколле, так что если делать переключение перед какими то долгими вычислениями то все будет ништяк, т.к. переключение в другой режим это просто far jump с некоторой обвяхкой, и накладные расходы у него соответствующие. С компилятором возиться тоже вощемто нафиг не нужно, достаточно напистать честную 64хбитную длл, но зависящую только от ntdll.dll, затем с помощью этого трюка (для современных виндов требуется некоторая коррекция) вгрузить ее в АП wow64 процесса, получить адрес нужных экспортов и дергать за них.
O>>Но компилятор таким трюкам конечно же не научить. Только асм, только хардкор.
кт>Во времена MS-DOS нечто похожее удавалось, но там среда мизерная, по сути отсутствовала. В какой-нибудь Windows 10 затраты на переключения убьют весь выигрыш от 64-разрядов посреди 32-х разрядной среды.
Не убьют, такие переключения происходят при каждом сисколле, так что если делать переключение перед какими то долгими вычислениями то все будет ништяк, т.к. переключение в другой режим это просто far jump с некоторой обвяхкой, и накладные расходы у него соответствующие. С компилятором возиться тоже вощемто нафиг не нужно, достаточно напистать честную 64хбитную длл, но зависящую только от ntdll.dll, затем с помощью этого трюка (для современных виндов требуется некоторая коррекция) вгрузить ее в АП wow64 процесса, получить адрес нужных экспортов и дергать за них.