본문 바로가기

Programming Language/Assembly

[Assembly] 실행환경 및 컴파일방법 어셈블리어 프로그래밍을 하기전에 자신의 컴퓨터 사양 및 컴파일러 등을 확인해야 한다. 어셈블리어 프로그래밍을 하기 앞서 저는 다음과 같은 실행환경에서 프로그래밍을 하고자 합니다. - cpu : 인텔계열(64bit)- 컴파일러 : nasm- 리눅스 : ubuntu 16.04 LTS NASM는 The Netwide Assembler의 약자입니다. 이 어셈블러는 여러 플랫폼사이에서의 포팅능력과 모듈화에 중점을 두고 개발되고 있는 32비트 및 64비트 지원하는 컴파일러입니다. 또한 가능한 간단하고 쉬운 문법을 사용합니다. 왜? NASM이냐는 NASM 튜토리얼에 있는 내용을 보면서 이해하도록 하겠습니다.우선, 무료 컴파일러이다. (2-clause BSD 혹은 simplified BSD 라이센스를 가지고 있다), .. 더보기
[Assembly] 어셈블리란?? :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: CPU 에는 해당 프로세서에 명령을 내리기 위해 고유의 명령어 세트가 마련되어 있는데 이 명령어 세트를 기계어라고 한다. 이 기계어는 숫자들의 규칙조합임으로 프로그래밍에 상당히 난해하다. 그래서 이 기계 명령어를 좀더 이해하기 쉬운 기호 코드로 나타낸것이 어셈블리어 인데, 우리가 어셈블리를 알아야 하는 이유는 우리가 원하는 리버싱 작업을 하고자 할떄 역어셈블러나 디버거를 쓰기 마련이다.역어셈블러는 기계어로 되어있는 파일을 읽어 들여 일정한 규칙하에 기계어를 어셈블리어로 .. 더보기