저는 C 언어가 처음인데 어셈블리 언어로 매핑하여 C 언어를 어셈블리 언어로 매핑하는 방법을 강구하여 스택, 레지스터, 메모리, 코드 작업이 어떻게 작동하는지에 대해 강하게 의식하고 싶습니다. C 코드를 참조하십시오. 몇 가지 어셈블리 언어 책을 읽었는데, 주로 C와 어셈블리 간의 관계보다는 어셈블리 구문에 중점을 둡니다. 누구나 C와 어셈블리 언어 사이의지도에 대한 책을 어디에서 찾을 수 있는지 알고 있습니다.C 언어를 어셈블리 언어로 매핑
-5
A
답변
0
그런 책이 있는지 나는 모른다 (만약 그렇다면 컴파일러에 관한 책 일 것이다). 그러나 더 쉬운 해결책이 있습니다. 시도해보십시오. ,이 MyFunction
에 중단 점을 설정합니다
gdb ./foo
break MyFunction
run
disass
:
는 일부 C 코드를 작성 디버그 기호와 함께 컴파일 (이 지침은 리눅스를 가정) :
gcc foo.c -o foo
을 다음, 디버거를 사용 그런 다음 중단 점에 도달 할 때까지 프로그램을 실행하십시오. disass
해당 기능의 어셈블리가 인쇄됩니다. stepi
을 사용하면 한 번에 한 명령 씩 실행할 수 있으며 next
을 사용하면 한 번에 한 명령 씩 실행할 수 있습니다.
+1
또는'gcc -S foo.c'를 실행하여 컴파일러에서 직접 어셈블리 파일을 생성하도록하십시오 (어셈블리 파일에서 매핑에 대한 정보가 조금 더 남을 수 있음). – microtherion
관련 문제
- 1. 고수준 언어를 어셈블리 언어로 변환하는 사람
- 2. 어셈블리 언어로 C 코드
- 3. C 언어로 ARM 어셈블리 임베드
- 4. 어떤 어셈블리 언어를 배우겠습니까
- 5. DOS의 어셈블리 언어로 된 글꼴
- 6. 언어를 다른 언어로 번역
- 7. 어셈블리 언어로 화면에 문자 인쇄하기
- 8. 어셈블리 언어로 증가 ecx
- 9. 어셈블리 언어로 배열 액세스
- 10. C 함수를 ARM 어셈블리 언어로 변환
- 11. C++ 코드의 어셈블리 언어로 오류 프로파일 링
- 12. 어셈블리 언어로 배열 나누기
- 13. 어셈블리 언어로 고생하기
- 14. 어셈블리 언어로 숫자 인쇄하기?
- 15. 어셈블리 언어로 루프하는 방법
- 16. 어셈블리 언어로 PIC16F877A 인터럽트
- 17. 어셈블리 언어로 입력
- 18. 어셈블리 언어로 메모리 액세스
- 19. 어셈블리 언어로 DUP 사용
- 20. 어셈블리 언어로 사용 등록
- 21. 어셈블리 언어를 파이썬 코드로 변환
- 22. .string을 어셈블리 언어로 .quad로 변환
- 23. 어셈블리 언어로 함수 호출이 호출됩니다.
- 24. wiki 언어를 다른 언어로 변환
- 25. 모든 언어를 하나의 언어로 변환합니다.
- 26. 어셈블리 언어로 00에서 99까지 카운터
- 27. 어셈블리 언어 매크로를 일반 어셈블리 언어로 변환
- 28. 어셈블리 언어로 레이블을 함께 추가 하시겠습니까?
- 29. 어셈블리 언어로 다중 처리를 구현하려면 어떻게해야합니까?
- 30. 어셈블리 언어를 사용하여 c/C++ 프로그램을 디버그 할 수 있습니까?
다른 컴파일러가 다르게 수행합니다. 심지어 동일한 컴파일러가 다른 설정에서도 다르게 수행합니다. – harold
C는 스택 또는 레지스터를 필요로하지 않습니다. – Olaf