Little Man Computer 시작하기

가. 소스 컴파일을 위한 준비

배포하는 Little Man Computer는 다음과 같은 패키지가 필요합니다.

(1) FLEX

sudo apt install flex 

(2) BISON(YACC)

sudo apt install bison 

(3) NCURSES

sudo apt install libncurses5 libncurses5-dev 

(4) READLINE

sudo apt install libreadline6 

(5) MAKE, LIBTOOL and AUTOTOOLS

sudo apt install make automake autoconf libtool

(6) GCC

sudo apt install gcc g++

(7) CURL

sudo apt install curl 

나. 소스 다운로드

(1) CURL을 사용하여 다운로드 받기

혹은 다음의 사이트에서도 받을 수 있다.

(2) 압축풀기

tar xvzf ./lmc-latest-linux-x86_64.tgz 

// lmc.cs.kookmin.ac.kr에서 다운받은 경우
tar xvzf ./lmc-1.4.0.b0-p11-linux-x86_64.tgz 

다. 컴파일 및 실행

(1) configure 하기

./configure

(2) make 하기

make

(3) 실행하기

./lmc

혹은 
make run

라. 문제해결

automake 버전 에러 혹은 m4 디렉토리 없음 에러 발생시

autoreconf --force -i .
위와 같이 실행하여, configure 스크립트를 재생성한 후, 다시 컴파일을 시도한다.

마. 어셈블러 사용하기

(1) 어셈블러를 생성하기 위해서는 컴파일을 해야한다.

make -C bin
// asm 명령어가 있는지 확인하기
ls bin

(2) 어셈블러를 기본 사용법

./bin/asm cassette/<카세트이름>
위와 같이 실행하면 화면에 어셈블리 중간 결과가 나타난다.

(3) 어셈블러: BL 포맷 생성

BL포맷: Basic Loader가 인식하는 포맷
./bin/asm --bl cassette/<카세트이름>
위와 같이 실행하면 화면에 어셈블리 중간 결과가 나타나며, <카세트이름.bl>파일이 생성된다.

(4) 어셈블러: RL 포맷 생성

RL포맷: Relocatable Loader가 인식하는 포맷
./bin/asm --rl cassette/<카세트이름>
위와 같이 실행하면 화면에 어셈블리 중간 결과가 나타나며, <카세트이름.rl>파일이 생성된다.

(5) 어셈블러: LL 포맷 생성

LL포맷: Linking Loader가 인식하는 포맷
./bin/asm --ll cassette/<카세트이름>
위와 같이 실행하면 화면에 어셈블리 중간 결과가 나타나며, <카세트이름.ll>파일이 생성된다.
Comments