문제

나는 C로 작성된 프로그램을 포트하기 시작했으며 32 비트 머신에 대한 지침으로 어셈블리에 몇 가지 코드를 작성했습니다. LJMP - 64 비트 기계에.

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


꽤 분명하기 때문에 나는 상황에 대한 초보자입니다. 몇 가지 요점을 명확히하자.

나는 아주 초기에 OS를 포팅하고 있습니다. X86 기계를 염두에두고 작성되었습니다. 이제 x86_64에서 실행하기를 원합니다.

Unix를 염두에두고 Linux 상자에 작성되었습니다. 원래 저자가 인텔 머신에서 글을 쓰고 있다고 확신합니다. 나는 또한 인텔에 있지만 AMD에서도 OS를 실행하고 싶습니다.

사용 된 컴파일러는 GCC입니다.

도움이 되었습니까?

해결책

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

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

다른 팁

당신은 배경이나 CPU의 유형을 제공하지 않았지만,이 64 비트 포트를 조립 언어를 사용하여 재고 할 수있는 기회로 가져 가야한다고 제안 할 것입니다. 확실히 그 자리에 있지만 C ++에서 루틴을 다시 코딩하고 컴파일러의 최적화 된 출력을 벤치마킹하여 실제로 느리게하는지 확인하는 것이 좋습니다. 대부분의 경우 그렇지 않을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top