이중 패스 어셈블러의 알고리즘에 대하여 정리해 보세요.
- 최초 등록일
- 2024.07.19
- 최종 저작일
- 2024.06
- 5페이지/
MS 워드
- 가격 3,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
시스템프로그래밍
이중 패스 어셈블러의 알고리즘에 대하여 정리해 보세요.
목차
I. 서론
II. 본론
1. One pass and tow pass assembler
2. 이중 패스 어셈블러 알고리즘
III. 결론
본문내용
서론
어셈블리 언어는 컴퓨터 혹 기타 프로그래밍이 가능한 장치에 사용되는 낮은 수준의 프로그래밍 언어이다. 어셈블리 언어에 가까울수록 컴퓨터가 이해하기 쉬운 언어이므로 속도나 안정성은 매우 높을 수 있으나, 이를 구성한 이후 유지보수 과정에서 어려움을 겪을 수밖에 없다. 또, 아키텍처의 기계어 코드 명령어 사이의 대응 관계를 고려하며, 시스템마다 각기 다른 어셈블리 언어를 사용함을 고려하였을 때, 이를 해석해줄 수 있는 컴파일러를 반드시 이용해야 한다.
어셈블러는 어셈블러 프로그램의 기존 기계어 프로그램을 번역하는 번역기와 같은 역할을 한다. 어셈블러는 프로그램을 한 번에 한 줄씩 읽고, 진행하며, 명령어에 대한 기계어 코드를 생성하는 것이 주요 매커니즘이다.
본론에서는 싱글 패스 어셈블러와 비교하면서 two Pass Assemblers 알고리즘에 대한 전반적인 이해를 가지도록 한다.
본론
1. One pass and tow pass assembler
싱글 어셈블러는 명령어 및 코드를 즉시 실행하기 위해 직접 개체 코드를 생성하는 어셈블리를 의미한다. 소스 코드 한 번의 분석으로 끝나는 작업이다. 이중 패스 어셈블러는 도중 정의되지 않은 라벨을 발견하면, 나중에 관련 기호를 찾을 때까지 정의되지 않은 기호 값을 찾아, 배치해야 하는 주소 및 기호 테이블을 입력한다.
이러한 이중 패스 어셈블러가 필요한 이유로, 원 패스 어셈블러에서 데이터 기호의 순방향 참조의 미해결 문제를 해결하기 위함이다. 모든 데이터 기호가 정의되지 않는다면, 명령어를 실행할 수 없는데, 이중 패스 어셈블러를 이용함으로써 데이터, 라벨의 전송 참조를 배타적으로 해결할 수 있도록 한 패스에 할당하고, 다음 패스에 번거로움 없이 오브젝트 코드를 부여함으로써 이 문제를 해결하는 것이다.
참고 자료
Github yush Pareek blog(https://github.com/ayushoriginal)