부울 게이트에서 고급 응용 프로그램에 이르기까지 컴퓨터의 빌드를 포함하는 프로젝트가 포함 된 프로젝트가 포함 된 첫 번째 원칙에서 현대 컴퓨터 구축 : 책 의 요소를 읽고 있습니다 (순서대로). 현재 작업중 인 프로젝트는 Hack 어셈블리 코드에서 Hack machine code로 변환하기 위해 선택한 고급 언어를 사용하여 어셈블러를 작성하는 것입니다 (Hack은 이전 장에서 빌드 된 하드웨어 플랫폼의 이름입니다). 하드웨어가 모두 시뮬레이터에 내장되어 있지만 실제 프로세스에서 해당 시점에 사용 가능한 도구 만 사용하여 각 레벨을 실제로 구성하고 있다고 가정했습니다.
즉, 그것은 나를 생각하게했다. 고급 언어를 사용하여 어셈블러를 작성하는 것이 확실히 편리하지만 역사상 처음으로 작성된 어셈블러의 경우 그 당시 존재했던 모든 것이 기계 코드로 작성 될 필요는 없습니까?
그리고 관련된 질문은 ... 오늘은 어떻습니까? 새로운 명령어 세트와 새로운 어셈블리 구문으로 완전히 새로운 CPU 아키텍처가 나오면 어셈블러는 어떻게 구성됩니까? 새 플랫폼의 어셈블리 언어와 기계 언어의 구문을 알고 있다면 어셈블러 작성 작업은 실제로는 단지 고급이므로 기존 고급 언어를 사용하여 어셈블러 프로그램의 이진 파일을 생성 할 수 있다고 가정합니다. 텍스트 분석 작업이며 해당 플랫폼과 본질적으로 관련이 없습니다 (즉, 해당 플랫폼의 기계 언어로 작성해야 함). 2012 년에 Hack 어셈블러를 작성하는 동안 "속임수"를 사용하고 기존의 일부를 사용하는 이유 나를 돕는 고급 언어.