Stack Frame

Stack Frame Stack Frame은 함수의 호출 정보들을 저장하기 위한 자료구조이다. 이러한 Stack Frame에는 함수에 필요한 인자, 지역 변수, return address와 같은 정보들이 들어있다. 함수를 호출(call)하게 되면 기존 레지스터에 있던 정보들을...

[번역]main 함수 없이 Hello World 출력하기

이 글은 Executing main() in C/C++ – behind the scene을 번역한 글입니다. main 함수 없이 Hello World 출력하기 어떻게 main 함수 없이 “Hello world”를 출력할 수 있을까? 먼저, main 함수가...

VM Translator

VM Translator - 1 가상 머신 패러다임 컴파일 과정은 상당히 복잡한 프로세스다. 보통 고수준 언어를 대상 기계어로 번역하려면 별도의 컴파일러를 따로 만들어야한다. 따라서 언어와 기계어의 특성에 따라 수많은 컴파일러가 생겨나게...

어셈블러

어셈블러 기호 변환(Symbol Resolution) 기호가 있는 코드를 기호가 없는 코드로 변환하는 방법에는 기호 테이블(Symbol Table)이 있다. 우선, 번역된 코드는 주소 0부터 시작하는 메모리에 저장하고, 변수들은 주소 1024부터 할당하도록 한다(이 규칙은...

CPU와 메모리 만들기

CPU와 메모리 만들기 CPU 우리가 만들 컴퓨터 아키텍처에서 PC칩의 출력에서 나온 선은 ROM 칩의 주소 입력에 연결된다. 여기서 ROM 칩은 PC가 가리키는 명령어 메모리 위치의 값인 ROM[PC]을 계속 출력한다. 이...