JSCC: JavaScript로 개발하는 C Compiler

코스 전체목록

닫기

HASM 뼈대 파일

4.2) HASM 뼈대 파일

HASM은 이름이 Handy Assembly인 만큼기본적으로 어셈블리 언어에 뿌리를 두고 있다그래서 거의 모든 구조가 기존의 어셈블리 언어를 잘 따르고 있다.

예제를 보이기 전에 파일 확장자 세 개를 설명하겠다. hda 파일은 Handy Assembly의 약자로, HASM 어셈블리 언어로 작성된 소스 코드 파일이다. hdo 파일은 Handy Object의 약자로우리가 개발할 어셈블러 모듈이 hda 어셈블리 소스 코드를 변환하여 생성되는 목적 파일이다. hdx는 Handy Executable의 약자로마찬가지로 우리가 개발할 링커 모듈이 어셈블러를 거쳐 생성된 목적 파일을 묶어 프로그램으로 만든 것이다다시 말하면 hdx 파일은 프로그램즉 실행 가능한 목적 파일이다.

그러면 바로 HASM 어셈블리 언어로 작성된 뼈대 파일을 보이겠다.

HelloHASM.hda

데이터 세그먼트의 시작을 나타냅니다.

; nasm과 다르게 segment 지시어를 기록하지 않습니다.

.data

 

코드 세그먼트의 시작을 나타냅니다.

.code

_main:

push ebp

mov ebp, esp

 

; put your code here

 

mov esp, ebp

pop ebp

ret

이 코드를 보고 나선 실망했을 수도 있다. NASM과 다른 것이 크게 없기 때문이다하지만 우리가 할 일은 이를nasm과 같은 프로그램에 넘기는 것이 아니라 이 코드를 해석하고 실행하는 실행기를 만드는 일이다그래서“Hello, world!"와 같은 기본 문자열을 출력하는 것도 이 코드에서는 제외했다.

이 코드가 HASM의 전체라면 당연히 고급 프로그램을 작성하는 것이 불가능하다이 문서에서는 일단 이렇게 간단한 코드를 해석하는 프로그램을 만든 다음필요한 기능이 있을 때마다 실행기에 기능을 추가하는 식으로 프로그램을 만들어나갈 것이다.

 

댓글

댓글 본문
graphittie 자세히 보기