6-1. Assembler - [밑바닥부터 만드는 컴퓨팅 시스템]
6장-12장은 컴퓨터의 SW적 측면에 초점을 맞춘다. 컴파일러, 간단한 객체 프로그래밍 언어, 기본적인 운영체제를 만들어보자. 여기에서 가장 기본이 되는것이 어셈블러 _assembler이다. 어셈블리어로 작성한 프로그램을 어셈블러를 이용해 2진 코드로 번역하는 과정을 배우고, Hack 어셈블러를 만들자. 기호로 된 어셈블리 명령 (ADD, JUMP)과 2진코드는 1대1 대응이므로 어셈블러 작성은 어렵지 않다. 기호를 이용해 메모리를 참조하도록 기능을 추가하는 것이 까다롭다. 기호테이블 _symbol table을 통해 사용자 정의 기호를 물리적 주소에 연결하고 관리한다. Hack의 어셈블러를 구현해보면서 다른 어셈블러를 만들 때 사용되는 핵심 소프트웨어 공학의 원리를 맛볼 수 있다. 배경 기계어는 기호형 ..
학부생 CS/Elements of Comp-Sys
2019. 11. 27. 19:17