Ответ 1
-
Да, 64-разрядный процессор имеет 3 режима размера, 16-разрядный, 32-битный и 64-разрядный. Операционная система не может запускать код в режиме, который больше, чем сама операционная система. Таким образом, Vista 32-bit может запускать только код, построенный для 16-битных и 32-разрядных. Ваш процессор действительно поддерживает 64-разрядные файлы, поэтому вы должны попытаться установить на нем 64-разрядную ОС. Если на вашем компьютере установлены реальные компакт-диски Windows Vista, для Vista 64 может быть отдельный компакт-диск. Если вы создадите новую инструментальную цепочку с поддержкой x86-64, вы сможете скомпилировать код, который использует 64-битные инструкции и регистры, но вы будете не сможет запускать исполняемые файлы, если вы не установите 64-разрядную ОС.
-
Так как
rax
- это 64-разрядный регистр (32-разрядный эквивалент -eax
), к нему нельзя получить доступ, кроме как из 64-разрядной программы. Причиной этого является довольно запутанное объяснение того, как процессор интерпретирует команды, которые посылает ваша программа.
Но вам действительно не нужен доступ к 64-битовому коду, чтобы использовать MMX, SSE, SSE2 и SSE3. Все эти инструкции доступны в 32-битном режиме и поддерживаются вашим процессором.
Вам также может потребоваться запустить виртуальную машину и поместить Ubuntu в нее. Это позволит вам запускать Linux внутри окна на рабочем столе Windows. Я думаю, что у вас будет более легкое время для использования с помощью цепочки инструментов GNU (gcc и т.д.) Изначально, чем вы будете использовать mingw32. Виртуальные машины просты в установке и использовании в этот день и в возрасте, и нет никаких оснований для использования mingw32. Вы также можете посмотреть на MS Visual С++ Express, который является компилятором на базе Windows, который является бесплатным от Microsoft, но он не поддерживает 64-разрядную (вам нужно заплатить за версию, которая делает).