NASM, MASM 차이

asm 2010. 8. 13. 00:48

MASM은 MS사에서 만든 어셈블러입니다.


NASM은 오픈소스로 만들어진 어셈블러입니다.

 

MASM와 NASM은 Intel 문법을 따르지만, directive에 있어서는 조금 차이가 납니다.

 

MASM은 윈도우 환경에서만 사용될 수 있으나, NASM은 다양한 환경에서 사용될 수 있습니다.

 

또한, 주소 지정 방식에서도 조금 차이가 납니다.

 

뭘 공부해야 하느냐는 목적에 따라 사용 하면 됩니다.

 

1. 윈도우, 리눅스 환경 및 독자 OS 개발에 사용하고 싶다면 NASM을 추천합니다.

 

참고로, Visual Studio에서 NASM 문법을 사용해서 C언어와 함께 개발하려면 독립적인 OBJECT 파일로

 

만들어서 링크해야 합니다. 즉, Visual Studio에서 인라인 어셈블은 안됩니다.

 

2. WinDebug 등의 디버거를 이용해서 윈도우용 프로그램을 리버스 엔지니어링하려면 아무래도 MASM 문법

 

에 익숙한 것이 낫습니다. 이런 경우에는 MASM을 공부하세요.

 

또한, MS에서 만든 것이다 보니 Visual Studio에서 C언어와 함께 인라인 어셈블이 가능합니다.

'asm' 카테고리의 다른 글

어셈을 시작하며  (0) 2010.08.27
About link errors  (0) 2010.07.15
segment:offset  (0) 2010.07.07
AND