이 글은 insight 출판사의 [밑바닥부터 만드는 컴퓨팅 시스템 / The Elements of Computing System]이라는 책에 있는 프로젝트(과제) 를 수행하는 글입니다. 과제 수행을 위한 언어로 C#을 선택했지만, Java와 거의 유사하여 Java를 알면 쉽게 이해할만한 코드들이예요. Chapter 4. 기계어 - Project Chapter 4의 프로젝트에서는 무언가를 설계하고 만들지는 않는다. Hack 언어로 간단한 프로그램을 작성해보는 과제를 해결해보면서 컴퓨터 플랫폼과 Hack언어, 기계어에 친해지는게 목적이다. 추후에 어셈블러, 컴파일러 등을 만들 때 Hack 언어와 동작에 대한 이해가 필요하므로 과제를 잘 수행해보자. 이번 과제를 해결하기 위해서는 교재에서 주는 도구가 필요합니..
이 글은 insight 출판사의 [밑바닥부터 만드는 컴퓨팅 시스템 / The Elements of Computing System]이라는 책에 있는 프로젝트(과제) 를 수행하는 글입니다. 해외에서는 Nand2Tetris라는 이름의 프로젝트로 잘 알려져 있습니다. 내용은 동일하니, 공부할 때 참고하세요! Chapter 4 Project에 대한 글 보러가기 기계어 프로그램을 살펴보면 HW가 왜 그렇게 설계되었는지 알 수 있다. 기계어는 프로세서에서 산술/논리 연산을 하고, 메모리에서 값을 Save/Load하고, 레지스터끼리 데이터를 교환하고, 조건 검사를 하는 등의 여러가지 작업을 수행할 수 있다. 이는 HW에게 직접 명령을 내리는 것이므로, 기계어 역시 HW플랫폼의 구성요소라고 볼 수 있다. 배경 기계어 M..