본문/내용
1. 이중 패스 어셈블러 개요
이중 패스 어셈블러는 고급 프로그래밍 언어로 작성된 소스 코드를 기계어로 변환하는 과정에서 특히 효율성과 정확성을 확보하기 위해 개발된 번역 기법이다. 이 어셈블러는 일반적으로 두 단계로 나누어 수행되며, 첫 번째 패스와 두 번째 패스로 구성된다. 첫 번째 패스에서는 소스 코드 전체를 읽으며 심볼 테이블을 생성하고, 코드 내의 모든 기호와 레이블, 변수의 위치 정보를 수집한다. 이를 위해 어셈블러는 소스 코드의 각 줄을 분석하여 예약어, 명령어, 상수, 레이블 등을 구분하고, 각 기호들이 가리키는 주소를 추적한다. 이 과정에서 심볼 테이블은 미리 계산된 주소와 선언된 기호 정보를 포함하게 된다. 이 단계는 전체 프로그램의 구조를 파악하는 데 중요한 역할을 하며, 이후 발생할 수 있는 주소 연산 오류를 방지하는 데 도움을 준다.
두 번째 패스에서는 첫 번째 단계에서 수집한 정보를 바탕으로 실제 기계어를 생성한다. 이 과정에서 각 명령어와 피연산자를 해석하여 최종 기계어 코드로 변환하며, 주소 지정자나 레이블이 가리키는 최종 주소를 할당한다. 약 60~70%의 작업이 이 단계에서 수행되며, 더 정밀한 …