일부 x86을 상속 한 일부 응용 프로그램 수준 코드는 ... 32 비트 명령어 및 주소 지정을 기반으로하는 인텔 어셈블리 코드입니다. 필자는 64 비트 Windows OS를 마이그레이션 할 때이 32 비트 어셈블리 코드가 실행될 것이라는 가정을합니다. 예?32 비트에서 64 비트로 어셈블리 코드 마이그레이션
0
A
답변
0
아마도 실행됩니다. 64 비트 Windows는 응용 프로그램 용 32 비트 모드를 지원하며 일반적으로 매우 안정적입니다. (분명히 이러한 것들은 결코 100 %가 아닙니다 -주의 경고.
0
예. 32 비트 코드는 64 비트 컴퓨터에서 실행되지만 4 개 이상의 GiB를 액세스 할 수는 없습니다.
2
아마도 실행되지만 64 비트 확장 기능 (x86-64, "64 비트"Windows 버전)이 제공하는 기능을 활용하지 않거나 x64 라이브러리와 밀접하게 상호 작용할 수 있어야합니다. WoW64 레이어는 매우 안정적이며 32 비트 응용 프로그램의 99.999 %가 현재 "64 비트"OS에서 잘 실행됩니다.
진정한 64 비트 운영 체제로 마이그레이션하려는 경우 (Itanium 기반, ia64 만 알고있는 것), 운이 좋지 않습니다.
편집 : 또한 큰 주소 액세스 (4GB 이상의 RAM을 사용할 수 있음)를 설정하려면 전환 할 수있는 PE 헤더 플래그가 있습니다.이 플래그를 켜면 더 많은 양의 메모리를 주소 지정할 수 있습니다.
0
아직 32 비트 x86 응용 프로그램을 계속 빌드하는 경우 을 실행하여이됩니다. 그러나 코드를 64 비트 x86으로 이식해야하는 경우, 어셈블리 코드가 실행되지 않고 컴파일되지 않을 수도 있습니다.
그리고 도구 체인에 따라 다르며 C/C++ 코드에서 인라인 어셈블러 인 경우 컴파일하지 못할 수도 있습니다.
이것은 C++ 코드에 포함되어 있습니다. – ddm
가까운 투표가 필요한 이유는 무엇입니까? – Sathya
아마도 이것은 내가 생각한 것만 큼 쉽지는 않을 것입니다. http://msdn.microsoft.com/en-us/library/hb5z4sxd.aspx 상태 "인라인 ASM은 64이 지원되지 않습니다 - 나는 (이 질문은 이동하는 사람들로 확실하지 죄송합니다) 응답자에서 링크를 가지고 MASM 또는 컴파일러 내장 함수 (x64 Intrinsics)를 사용하십시오. " – ddm