본문 바로가기
시스템 프로그래밍전자계산기기사(통합변경) · 2021년09월12일 · 6/100

6.어셈블리를 두 개의 패스로 구성하는 주된 이유는?

1
한 개의 패스만을 사용하면 메모리가 많이 소요된다.
2
패스 1, 2의 어셈블러 프로그램이 작아서 경제적이다.
3
기호를 정의하기 전에 사용할 수 있어 프로그램 작성이 용이하다.정답
4
한 개의 패스만을 사용하면 프로그램의 크기가 증가하여 유지보수가 어렵다.

해설

어셈블 과정은 원시 프로그램이 패스 1에 의해 기호표를 작성하고 어셈블리 명령어에 상응하는 기계어 코드를 생성하고 기호를 주소값으로 변환 어셈블리 지시어는 지시어표에 나타난 지시대로 처리한다. 패스 1에서는 원시 프로그램을 각 명령어나 데이터들의 크기를 파악하여 상대주소를 정한다 각 기호표를 만들어 각 기호의 값을 기록하게 된다. 재배치해야 할 기호들을 결정하여 재배치 여부를 표시 패스 2에서는 명령어표에서 각 명령어의 2진 코드를 찾아 기계어 코드로 만들고 기호의 전향 참조가 있을 때에는 기호표에서 기호의 값을 찾아 기호 대신 기호의 값을 기입하는 기능을 한다 주소를 변경하는 것을 재배치라고 한다. 재배치 작업은 링커와 로더가 하기 때문에 어셈블러는 링커와 로더에게 어느 기호의 값을 재배치할 것인가를 알려준다.

이 시험을 직접 풀어보세요

실전과 동일한 CBT 환경에서 시간 제한 연습

회원가입 없이 CBT 풀기