위키득계정 ↗
기술

LLVM MC

LLVM MC기술
실행 이름
llvm-mc
이름
LLVM Machine Code Playground
분류
기계 코드 처리 도구
기능 예
어셈블과 바이트 디스어셈블
LLVM MC는 대상 아키텍처의 어셈블리와 명령 인코딩을 시험하는 명령행 도구다. 어셈블러와 디스어셈블러의 동작을 살펴보는 데 활용한다.

명령 표현과 바이트

어셈블리 문장을 처리하고 명령이 어떤 바이트로 인코딩되는지 확인할 수 있다. 반대로 바이트 시퀀스를 명령으로 해석하는 기능도 있다. 텍스트 형태의 LLVM 중간 표현을 비트코드로 만드는 LLVM As와는 입력의 계층이 다르다.

파서와 문법 실험

어셈블리 입력을 토큰으로 나누거나 서로 다른 출력 문법으로 표시하는 작업을 지원한다. 작은 명령 조각으로 파서와 인코딩을 점검하는 데 유용하다. 실제 지원 기능은 선택한 타깃과 도구 빌드에 따라 확인한다.

대상 조건의 중요성

아키텍처와 CPU 기능이 맞지 않으면 같은 바이트와 명령을 의도와 다르게 해석할 수 있다. 비교 시 대상 설정을 함께 기록한다. 올바른 인코딩이 생성되었다는 사실만으로 그 명령을 사용하는 프로그램 전체의 동작이나 성능이 보장되지는 않는다.

관련 문서

LLVM As / LLVM LLC / LLVM Objdump / Capstone