32 비트 C++로 작성된 OS 커널에서 작업하고 있습니다. 32 비트 보호 모드를 활성화하고 C++에서 a20 게이트를 활성화하는 방법을 알아야합니다. 그래서 가능하다면 그렇게 말해 줄 수 있습니까? 그렇다면 어떻게 할 수 있습니까? 고맙습니다.C++ - 32 비트 보호 모드
답변
C 및 C++은 "a20 게이트"가 무엇인지와이를 활성화하는 방법을 알지 못합니다. "32 비트 보호 모드"와 동일합니다. 이것은 특정 기계 코드를 통해 수행되어야합니다. 자, 올바른 질문은 C++ 프로그램에서이 코드를 호출하는 방법입니다.
1) 가장 간단한 방법은 asm
, __asm
또는 __asm__
블록을 사용하여 임베디드 어셈블리 코드를 사용하는 것입니다 : C++ 컴파일러에 따라 그 작업을 수행하는 여러 가지 방법이있을 수 있습니다. 그것을 사용하는 방법에 대한 C++ 컴파일러 문서를주의 깊게 읽으십시오. 모든 컴파일러가이를 지원하는지 확신 할 수 없습니다.
2) 어셈블러를 사용하여 C++ 응용 프로그램에서 호출 할 수 있도록 어셈블리 코드를 사용하여 코드를 작성합니다. extern "C"
을 사용하여 C++ 프로그램에서 함수를 선언 할 수 있습니다.
3) 어셈블리 코드를 바이트 배열에 넣고 배열의 주소를 함수 포인터로 변환하여 호출하십시오. 기계 코드와 C/C++ 호출 규칙에 대한 많은 지식이 필요합니다.
정말 고마워요. 이것은 정말로 유용했습니다. 나는 투표를 할 것이지만, 나는 단지 두 번의 반복만을 갖는다. – crank123
- 1. x86 32 비트 보호 모드 : 호출 스택에서 읽기?
- 2. IronPython을 항상 32 비트 모드
- 3. 독립 실행 형 32 비트 어셈블리 프로그램
- 4. ARM 모드, 32 비트 상수. 일반 경우
- 5. C#의 32 비트 * 32 비트 데이터 문제
- 6. C++ 비트 연산 16, 32 비트 순간에
- 7. System.Data.Sqlite.dll 32 비트 64 비트 C#
- 8. 부동 소수점 연산 32 비트 모드와 64 비트 모드
- 9. 64 비트 서버에서 응용 프로그램 풀 32 비트 모드 사용
- 10. C++ 32 비트 워드 바이트
- 11. MinGW64는 32 비트 코드
- 12. 32 비트 구조의 구조체
- 13. get/set C++ 코드에서 향상된 보호 모드
- 14. 16 비트 이미지에서 32 비트
- 15. 32 비트 64 비트 호환
- 16. 32 비트/64 비트 OS?
- 17. xapian 문제 - 32 비트 C# windows
- 18. Java와 C 코드 (32 비트) 결합
- 19. C# - 32 비트 부동 소수점 라이브러리가 있습니까?
- 20. 32 비트 dword + dword carry/C++ 감지
- 21. C++ 32 비트 tiff 이미지 저장 및로드
- 22. C++ : 32 대 64 비트 스트림 작업
- 23. C# 개체의 32 비트 해시 함수
- 24. Win7 64/32 비트 C# dll 의심
- 25. 16 비트 레지스터는 보호 모드 x86에서 액세스 할 수 있습니까?
- 26. 포트란 : 32 비트/64 비트 성능 이식성
- 27. 조직 모드 : 보호 강조
- 28. IDA의 보호 모드 분할
- 29. iconv() 32 비트 대 Linux의 64 비트
- 30. Powershell 문제 - 32 비트 대 64 비트
나는 그것이 반 자살과 관련되어 있음을 기억한다. 재설정. 인텔에서 설명서를 찾을 수 있습니다. –
osdev.org의 자료를 참조하십시오. 아마도 어셈블리에서 보호 모드와 a20을 사용 가능하게하고 나중에는 C++ 커널로만 이동합니다. 또는 멀티 부트 로더를 사용하십시오. – Jester
링크가 있습니까? 건배와 hth. - Alf – crank123