공부,일/어셈블리

listing 파일 만들기

fromnothing1 2021. 8. 16. 18:14

리스팅 파일(listing file)은 컴파일러가 만들어 내는 텍스트 파일로서 컴파일러가 생산한 어셈블리 언어 코드가 담겨있다. 어셈블리 언어 코드는 컴파일러가 생산한 바이너리를 디스어셈블리하면 얻을 수 있지만 리스팅 파일은 어셈블리 언어 코드뿐만 아니라 각 어셈블리 코드 라인이 원래의 소스코드에 어떻게 매핑되는지 보여준다.

 

대부분의 컴파일러는 컴파일 과정에서 리스팅 파일을 생성할 수 있다. GCC와 같은 컴파일러는 곧바로 객체 파일을 생성하지 않고 어셈블리가 처리하는 어셈블리 파일을 생성한다. 이런 경우에는 어셈블리가 어셈블리 파일을 처리하고 해당 파일을 삭제하지 않게 설정하면 된다. 그 밖의 다른 컴파일러(마이크로소프트나 인텔의 컴파일러)에서는 커맨드라인의 명령 옵션을 이용해서 리스팅 파일을 생성하게 설정 해야 한다.

 

https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=bestheroz&logNo=97447961 

 

리스팅 파일(listing file)이란?

리스팅 파일(listing file)은 컴파일러가 만들어 내는 텍스트 파일로서 컴파일러가 생산한 어셈블리 언어 ...

blog.naver.com

 

- 쉽게 말해서 어셈블리 언어랑 머신언어를 1 대 1 매칭 시켜줘서  프로그래머가 쉽게 이해할수 있도록 돕는 파일이다. 

 

visual studio 2019 로 만들기 

release 모드를 해야지 list 파일이 생성된다. 

project 속성에서 MASM 부분에서 리스트 파일 안에 위처러 

내가 원하는 리스트 파일 이름을 적으면 프로젝트 안에 생성된다. 

 

위처럼 어셈블리 코드와 binary 코드가 1대일 매칭되어 실제로 어셈블러가 어떻게 바이너리 파일을 만드는지 알수 있다.