Assembler의 compile 과정
- 최초 등록일
- 2008.06.11
- 최종 저작일
- 2006.06
- 6페이지/ 한컴오피스
- 가격 1,000원
소개글
Assembler의 compile 과정을 체계적으로 정리하였습니다.
목차
1. 「Assembler의 compile 과정」
1.1 「Assembler란 ?」
1.1.1 「First pass」
1.1.2 「Second pass」
1.1.3 「Assembler의 error 진단」
본문내용
1. 「Assembler의 compile 과정」
1.1 「Assembler란 ?」
Assembler는 symbol-language program을 읽어서 해당되는 binary-program으로 번역하는 일종의 program이다. 이때 입력되는 symbol program을 source program이라하고, 결과로 나오는 것을 object program이라고 한다.
1.2 「Assembler의 compile 과정」
Compile 과정은 2가지의 과정으로 나뉠 수 있으며 각각을 first pass, second pass과정이라 한다.
1.1.1 「First pass」
Two-pass Assembler는 symbol program 전체를 두 번 scan하는데 first pass동안은 사용자가 정의한 주소 기호와 이것에 해당하는 이진수 값이 관계를 나타내는 표를 작성하게 되며, second pass 동안에는 이진수로의 번역이 실행된다.
각 명령어의 위치를 추적하기 위하여 Assembler는 location counter(LC)라고 하는 하나의 memory word를 사용하는데 여기서는 현재 처리되고 있는 명령어나 피연산자에 지정된 memory의 처음 위치에 해당하는 값에 세팅 시킨다. 각 줄의 코드를 처리한 수에 LC는 1씩 증가하며 여기서는 LC가 처음에 0으로 세팅 되다고 가정하기로 한다.
First pass 동안 Assembler에 의해서 실행되는 작업은 그림 1-1과 같다. LC는 처음에 0이 세트되고 그 다음에 각 줄의 코드가 라벨을 가지고 있는지를 콤마(,)에 의해서 결정하고, 만약에 라벨이 없으면 명령어 필드의 symbol를 체크하여 OGR Pseudo 명령어일 경우 LC를 ORG 다음에 오는 숫자에 세트한 후 다음 줄의 코드를 처리한다. 한편 END Pseudo 명령어일 경우는 first pass를 끝내고 second pass로 넘어간다. 라벨을 갖고 있는 경우 현재 LC의 내용을 그 라벨과 함께 address-symbol table에 저장하는데, 만약 라벨이 하나도 없는 경우라면 테이블 상에는 아무것도 저장되지 않는다. 그리고나서 LC는 1이 증가되고 다음 줄의 코드가 처리된다.
참고 자료
없음