gcc 인라인 어셈블리를 시험하기 위해 32 비트 Vista 상자에 mingw32를 설치했습니다. 불행히도 32 비트 gcc 컴파일러는 %% rax와 같은 과 같은 64 비트 레지스터를 인식하지 못합니다. 32 비트 윈도우 아래의 64 비트 레지스터
- 그것을 방지 할 수는 x86 (인텔 코어 듀오 T5800)에 대한 몇 가지 프로세서 모드가 있습니까 : 나는 새로운 툴체인을 조립하는 노력에 시간을 많이 침몰하기 전에
, 나는 몇 가지 질문이 Vista32를 실행하는 동안 64 비트 레지스터를 사용하지 못하게됩니까?
# 1에 대한 대답은 "당연히 32 비트 창에서 % rax 등을 사용할 수 있습니다"라고 가정하면 gcc는 64 비트 레지스터를 인식하고 실행될 실행 파일을 빌드하도록 구성 할 수 있습니다 32 비트 창? gcc에는 -m64 옵션이 있지만 mingw32와 함께 제공되는 내 버전에는 64 비트 지원이 없습니다. 64 비트에 액세스 할 수있는 32 비트 응용 프로그램을 빌드 할 수 있다면 gcc를 확실히 재구 축할 수 있습니다. 레지스터하지만 어쨌든 작동하지 않으면 그 고통을 겪고 싶지 않습니다.
은 제외 :이 실제로는 SSE2 명령 (예, 컴파일러 내장 함수가 존재 알고,하지만 난 기계 레벨부터 그것을 이해하고 싶습니다)을 학습 향한 첫 번째 단계입니다.
미리 답변 해 주셔서 감사합니다. - 짐
훌륭한 답변을 주셔서 감사합니다. 재 : 64 비트 비스타 ... 나는 (내가 생각하는) 인터페이스를 통해 마이크로 컨트롤러에 연결, 서명되지 않은 드라이버를 사용하므로 기쁨이 없습니다. 32 비트 창에서 64 비트 VM을 실행할 수 있습니까? 저는 현재 VMWare에서 32 비트 RH9와 Fedora 11을 가지고 있습니다. 64 비트 VM을 살펴 보겠습니다.32 비트에서 SSE2에 액세스 할 수 있다면 64를 건너 뛰기 만 할 것입니다 (SSE2는 64 비트에서만 사용할 수 있다고 잘못 생각한 것 같습니다). 다시 고마워! – Jim
나는 그것이 뒤얽힌다고 말하지 않을 것이다. 지원되지 않는 주된 이유는 32 비트 OS가 작업 스위치의 모든 레지스터를 저장/복원하지 않기 때문입니다. OS는 항상 프로세스에서 보이는 모든 아키텍처 상태를 저장/복원하는 방법을 알고 있어야합니다. (이는 사용자 공간 프로세스가 SSE를 사용하기 전에 OS 지원이 필요한 이유이지만 MMX에 대한 추가 지원은 필요하지 않습니다.) –