내 C
프로그램에 IP
값을 등록하려면 어떻게해야합니까? 예를 들어, AX
및 BX
값을 얻기위한 레지스터에는 의사 변수 _AX and _BX
이 있습니다. IP
레지스터에 대한 의사 변수가 있습니까? 또는 다른 방법이 있습니까? 참고 : 실행될 다음 명령어의 오프셋 주소를 저장하기 때문에 IP
레지스터 값이 필요합니까?어떻게 IP 레지스터의 가치를 얻을 수 있습니까?
0
A
답변
3
C에는 CPU 레지스터에 대한 개념이 없으므로 일반 C에서는이 작업을 수행 할 수 없습니다. 어떤 컴파일러를 사용하는지에 따라 다음 중 하나를 사용해야합니다.
- 컴파일러 내장;
- 인라인 어셈블리; 또는
- 외부 어셈블리 루틴
고유 사용할 수가 있는지 컴파일러의 설명서를 참조하십시오. 사용할 수있는 것이 없다고 가정하면 일종의 어셈블리가 유일한 옵션입니다. x86에는 IP 레지스터를 직접 읽을 수있는 명령이 없습니다. 대신에 call
명령어 (스택의 다음 IP를 저장)와 같은 것을 사용해야합니다.
여기 (& T 구문 AT) 86에서 IP를 얻을 수있는 하나 개의 방법 : 당신이 C 코드에서 다음
.globl get_ip
get_ip:
mov 0(%sp), %ax
ret
을, 당신은이 작업을 수행 할 수 있습니다
이uint16_t get_ip();
...
uint16_t ip = get_ip();
컴파일러가 인라인을 지원하는 경우 그런 다음 별도의 어셈블리 소스 파일이 필요없이 C 소스 코드 내에 get_ip
함수를 작성할 수 있습니다. 사용 가능한 경우 인라인 어셈블리 구문에 대한 컴파일러 설명서를 참조하십시오.
위의 과정은 16 비트 어셈블리에서 작업하고 있다고 가정합니다.이 어셈블리는 AX, BX 및 IP 레지스터에 대해 언급 한 이후로 가정합니다. 그러나 이것을 32 비트 코드에서 사용하려면 물론 레지스터의 이름을 %esp
, %eax
및 %eip
으로 변경해야하고 get_eip()
은 uint16_t
대신 uint32_t
을 반환해야합니다.
관련 문제
- 1. 어떻게 page_init에서 HiddenField의 가치를 얻을 수 있습니까?
- 2. 텍스트 영역의 가치를 어떻게 얻을 수 있습니까?
- 3. SubReport에서 가치를 얻을 수 있습니까?
- 4. 누가 내게 레지스터의 가치를 얻을 수 있는지 말해 줄 수 있습니까?
- 5. 어떻게 meta_key의 가치를 얻을 수 및 페이지
- 6. IP 레지스터의 내용 표시
- 7. Javascript는 web.config AppSettings에서 가치를 얻을 수 있습니까?
- 8. 어떻게 jsp 내부에서 Javascript 기능의 가치를 얻을 수 있습니까?
- 9. 나는 어떻게 PHP에서 C 파일에서 가치를 얻을 수 있습니까?
- 10. expressJS를 사용하여 "포스트"라우터에서 어떻게 가치를 얻을 수 있습니까?
- 11. jenkins 플러그인은 어떻게 구성 설정의 가치를 얻을 수 있습니까?
- 12. serialize를 통해 확인란을 통해 어떻게 가치를 얻을 수 있습니까?
- 13. PHP, SQL 리소스 ID # 10. 어떻게 가치를 얻을 수 있습니까?
- 14. 어떻게 사용 ID 없이도 뷰에서 가치를 얻을 수 있습니까?
- 15. 레지스터의 주소를 어떻게 바꿀 수 있습니까
- 16. $ 갔지과 가치를 얻을
- 17. 내 서버 프로그램의 IP 주소는 어떻게 얻을 수 있습니까?
- 18. 서비스 근로자는 요청의 원격 IP 주소를 어떻게 얻을 수 있습니까?
- 19. 어떻게 원시 소켓에서 IP src addr을 얻을 수 있습니까?
- 20. 어떻게 IP 주소의 첫 번째 범위를 얻을 수 있습니까?
- 21. 어떻게 골란의 UDP 서버에서 클라이언트 IP 주소를 얻을 수 있습니까? ,
- 22. Openfire에서 세션 IP 주소를 어떻게 얻을 수 있습니까?
- 23. 어떻게 smartgwt 사용자 정의 FilterEditorType에서 가치를 얻을?
- 24. CakePHP 질문 : 라디오 버튼에서 어떻게 가치를 얻을 수 있으며 어떻게 행동을 불러 낼 수 있습니까?
- 25. Firebase로 나의 가치를 어떻게 바꿀 수 있습니까?
- 26. Ajax. 어떻게 가치를 되돌릴 수 있습니까?
- 27. IloNumVarArray의 가치를 얻을 수 있습니까? 목적 함수의 정의에 대해
- 28. 이전 클래스에서 가치를 얻을 수있는 방법이 있습니까?
- 29. 모든 가치를 얻을
- 30. ComboFieldEditor의 값은 어떻게 얻을 수 있습니까?
+1 멋진 답변 – pradipta