2009-07-04 5 views
3

C로 작성된 프로그램을 포팅하기 시작했으며 어셈블리에 32 비트 머신에 대한 명령어 (예 : ljmp)가있는 64 비트 머신 .64 비트 어셈블리의 32 비트 명령어들

어셈블리에서 32 비트 컴퓨터와 64 비트 컴퓨터에 대한 지침이있는 장소/문서가 있습니까? 그렇지 않은 경우 32 비트 및 64 비트 시스템에 대한 모든 지침을 나열하는 문서는 어디에서 찾을 수 있습니까?


꽤 분명한 바와 같이 나는이 상황에 대한 초보자입니다. 몇 가지 점을 분명히 해두 자.

나는 매우 초기에 OS를 이식하고 있습니다. x86 머신을 염두에두고 작성되었습니다. 이제 x86_64에서 실행하고 싶습니다.

이것은 UNIX를 염두에두고 Linux 상자에 작성되었습니다. 나는 원래 저자가 인텔 컴퓨터에 그것을 쓰고 있다고 거의 확신한다. 나는 Intel에도 있지만 AMD에서도 OS를 실행하고 싶습니다.

사용되는 컴파일러는 gcc입니다.

+3

어떤 프로세서 아키텍처입니까? 공급 업체의 웹 사이트로 이동하여 참조를 다운로드하십시오. –

답변

2

먼저 읽으십시오 : http://x86asm.net/articles/x86-64-tour-of-intel-manuals/index.html.

그런 다음 여기에서 명령어 세트 참조 번호를 다운로드하십시오 : http://developer.intel.com/products/processor/manuals/index.htm.

+0

이것은 OP가 실제로 x86 CPU에서 작동하고 있다고 가정합니다. – jalf

+0

원래 질문에서 지정하지 않은 사실은 거의 그가 x86-64 일 것임을 암시합니다. 그렇더라도이 질문이 다른 적용 가능한 아키텍처에 대한 참조를 수집 할 수 있다면 정말 좋을 것입니다 :) – jerryjvl

3

배경이나 CPU 유형을 제공하지는 않았지만이 64 비트 포트를 어셈블리 언어 사용 재검토의 기회로 삼아야한다고 제안 할 것입니다. 확실히 그 자리를 차지하고 있지만 C++에서 루틴을 코딩하고 컴파일러의 최적화 된 출력을 벤치마킹하여 실제로 느린지 확인하는 것이 좋습니다. 많은 경우에, 그렇지 않을 것입니다.

관련 문제