Перенос кода сборки с 32 на 64 бит - PullRequest
0 голосов
/ 20 августа 2010

Я отвечаю за некоторый код уровня приложений, который я унаследовал, который имеет некоторый код сборки x86 ... Intel, основанный на 32-битных инструкциях и адресации. Я собираюсь сделать предположение, что этот 32-битный ассемблерный код будет работать при переходе на 64-битную ОС Windows. Да

Ответы [ 4 ]

2 голосов
/ 20 августа 2010

Возможно, он запустится, но не будет использовать ни одну из функций, предоставляемых 64-битными расширениями для x86 asm (x86-64, как и все "64-битные" версии Windows), или не будетвозможность тесно взаимодействовать с библиотеками x64.Уровень WoW64 очень стабилен, и 99,999% 32-битных приложений нормально работают в современных «64-битных» ОС.

Если вы хотите перейти на настоящую 64-битную операционную систему (единственные, кого я знаю, на базе Itanium, ia64), вам не повезло.

Редактировать: Кроме того, если вы хотите включить доступ с большим адресом (может использовать> 4 ГБ ОЗУ), есть флаг заголовка PE, который вы можете перевернуть, чтобы включить его и разрешить обращаться к большим объемампамять.

0 голосов
/ 20 августа 2010

Будет запускаться , если вы продолжите создавать 32-битные приложения для x86. Однако если вам нужно перенести код на 64-разрядную версию x86, скорее всего, код сборки не будет запущен (и может даже не скомпилироваться) из коробки.

И в зависимости от цепочки инструментов и от того, является ли он встроенным ассемблером в коде C / C ++ или нет, вы вообще не сможете его скомпилировать.

0 голосов
/ 20 августа 2010

Да.32-разрядный код будет работать на 64-разрядных компьютерах, но они не смогут получить доступ к более чем 4 ГБ ОЗУ.

0 голосов
/ 20 августа 2010

Скорее всего, он будет работать;64-битная Windows поддерживает 32-битный режим для приложений и, как правило, очень надежна.(Очевидно, что эти вещи никогда не бывают 100%, однако, будьте бдительны)

...