어셈블러
-
어셈블러의 2패스 구조전공/시스템프로그래밍 2020. 6. 8. 13:11
패스1 원시 프로그램을 돌리면서 지시어표를 통해 명령어의 주소를 결정한다. 전향 참조인 경우, 심볼이 정의되어 있지 않으므로 ? 상태가 된다. DW(지시어)로 정의된 심볼을 정리한 심볼테이블을 만든다. 그리고 부차적인 요소이긴 하지만 임시테이블로 기계어테이블도 만들기도 한다. 패스2는 지시어표를 볼 필요없이 이 기계어테이블로 바로 주소를 볼 수 있어 효율적이다. 패스2 패스1에 의해 만들어진 심볼 테이블을 적용시켜 정의되지 않았던 심볼들의 주소를 기입한다. 즉, FIVE, FOUR와 같이 적혀진 심볼을 4, 6 등의 주소로 변경하는 것이다. 패스2 이후에 어셈블러는 링커, 로더의 재배치 작업을 위해 정보들을 알려주어야 한다. 그 중 심볼의 재배치여부가 필요하면 1, 필요없으면..