C 언어를 어셈블리 언어로 매핑

존슨

저는 c 언어를 처음 접했고 c 코드를 볼 때 스택, 레지스터, 메모리, 코드가 어떻게 작동하는지에 대한 강한 감각을 가질 수 있도록 c 언어를 어셈블리 언어로 매핑하는 직관을 확립하고 싶습니다. 나는 c와 어셈블리 간의 관계보다는 어셈블리 구문에 주로 초점을 맞춘 어셈블리 언어 책을 여러 권 읽었습니다. c와 어셈블리 언어 사이의지도에 대한 그런 책을 어디서 찾을 수 있는지 아는 사람이 있습니까?

IanPudney

그런 책이 존재하는지 모르겠습니다 (만약 있다면 컴파일러에 관한 책일 것입니다). 그러나 더 쉬운 해결책이 있습니다. 시도해보십시오.

C 코드를 작성한 다음 디버그 기호로 컴파일합니다 (이 지침은 Linux를 가정 함).

gcc foo.c -o foo

그런 다음 디버거를 사용하십시오.

gdb ./foo
break MyFunction
run
disass

이것은에 중단 점을 설정 한 MyFunction다음 해당 중단 점에 도달 할 때까지 프로그램을 실행합니다. disass해당 함수에 대한 어셈블리를 인쇄합니다. 를 사용 stepi하여 한 번에 하나의 명령 next을 단계적으로 수행 하거나 한 번에 하나의 C 라인을 단계적 으로 수행 할 수 있습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C 또는 C ++를 사용한 어셈블리 언어

분류에서Dev

C 언어의 매크로

분류에서Dev

.NET 어셈블리 언어

분류에서Dev

어셈블리 언어로 시작

분류에서Dev

C에 상응하는 어셈블리 언어

분류에서Dev

어셈블리 호출이 잘못된 주소로 매핑 됨

분류에서Dev

어셈블리 언어에서 매크로를 사용하여 줄을 만드는 동안 오류 A2149

분류에서Dev

C to MIPS 어셈블리

분류에서Dev

어셈블리를 C로 변환

분류에서Dev

68000 어셈블리 코드 메모리 매핑

분류에서Dev

어셈블리 언어에서 BCD를 이진으로 변환

분류에서Dev

어셈블리 언어 IA32-char를 int로 이동

분류에서Dev

어셈블리 언어를 Python 코드로 변환

분류에서Dev

잘못된 명령어-C 코드의 인라인 어셈블리 언어

분류에서Dev

.Net 어셈블리 매핑 정책 목적

분류에서Dev

C ++ 및 어셈블리의 로그

분류에서Dev

PIC 어셈블리 언어-decfsz 루프

분류에서Dev

Ubuntu의 Intel 어셈블리 언어

분류에서Dev

Sparc 어셈블리 언어 컴파일

분류에서Dev

어셈블리 언어 MASM 점프

분류에서Dev

어셈블리 언어 MASM 점프

분류에서Dev

어셈블리 언어 배열

분류에서Dev

어셈블리 언어 구문 표준

분류에서Dev

어셈블리 언어 기초

분류에서Dev

이것은 C64 6502 어셈블리의 어떤 방언입니까?

분류에서Dev

어셈블리 언어처럼 우아하게 C에서 플래그 설정

분류에서Dev

ARM 어셈블리 명령어를 ARM 기계 언어로 인코딩

분류에서Dev

어셈블리 명령어를 C ++로 번역

분류에서Dev

C 언어 선언