LMC(Little Man Computer)는 초보자 조립 프로그래밍을 가르치기 위해 설계된 매우 간단한 마이크로프로세서 및 컴퓨터 시스템입니다. 일을 더 간단하게 하기 위해 이진 컴퓨터가 아닌 십진 컴퓨터로 표시됩니다. 여기에는 0부터 99까지 번호가 매겨진 100개의 메모리 셀이 포함되어 있습니다. 여기에 프로그램 지침과 데이터를 배치할 수 있습니다.
각 셀에는 3자리 십진수를 저장할 수 있습니다. 여기에 컴퓨터가 수행할 명령이나 작동할 데이터를 저장할 수 있습니다. CPU에는 산술을 수행할 때 사용되는 단일 누산기가 있습니다. 사용자 입력을 읽고 사용자에게 출력을 쓸 수 있는 입력 및 출력도 있습니다.
다음은 명령어 세트에 대한 간단한 개요입니다. 각 명령어는 실제로는 단지 3자리 숫자입니다. 그러나 일반적으로 프로그래밍할 때 기억하기 쉬운 문자 약어를 다룹니다. 아래 설명을 읽는 방법에 대한 팁이 있습니다. 예를 들어 Add
명령어는 숫자 1xx
를 갖는 것으로 설명됩니다. 이것이 실제로 의미하는 바는 xx
가 피연산자(인수)를 넣는 위치라는 것입니다. 따라서 142
메모리 셀(42)의 내용을 누산기의 내용에 추가하기 위한 명령입니다.
ADD
1xx 메모리의 주소 xx
에 있는 콘텐츠를 누산기에 추가합니다.SUB
2xx는 누산기에 저장된 내용에서 주소 xx
의 내용을 뺍니다. 결과를 누산기에 저장합니다.STA
3xx는 메모리의 주소 xx
에 누산기를 저장합니다.xx
에 있는 내용이 있는 LDA
5xx 로드 누산기.BRA
6xx는 프로그램의 xx
위치로 점프합니다.BRZ
7xx 점프BRP
8xx 점프(양수).INP
901 입력의 숫자로 누산기를 채웁니다.OUT
902 누산기의 값을 출력 큐에 푸시합니다.HLT
000 정지 프로그램 예제 폴더에서 더 많은 프로그램 예제를 찾을 수 있습니다. 다음은 입력에서 숫자를 읽고 카운트다운하는 프로그램의 예입니다. 따라서 입력에서 4를 읽으면 출력에 4, 3, 2, 1 및 0이 기록됩니다.
INP
OUT
LOOP BRZ QUIT // Jump to QUIT if accumulator is 0
SUB ONE // Subtract from accumulator what is stored in ONE
OUT
BRA LOOP // Jump (unconditionally) to the memory address labeled LOOP
QUIT HLT // Label this memory address as QUIT
ONE DAT 1 // Store 1 in this memory address.
예제로 작성된 프로그램을 파일에 저장하고 해당 파일 이름을 프로그램과 데이터를 나타내는 3자리 정수 목록을 생성하는 assemble(file)
함수에 제공할 수 있습니다. 이것을 simulate!(program, inputs)
함수에 입력하여 프로그램을 실행할 수 있습니다. 출력을 덤프합니다.
또는 이를 복사하여 붙여넣고 아래 설명된 웹 기반 LMC 시뮬레이터 중 하나에 코드를 넣을 수 있습니다.
LMC CPU에 대한 여러 브라우저 기반 시뮬레이터를 온라인에서 찾을 수 있습니다. 프로그램을 단계별로 실행하고 가상 컴퓨터가 어떻게 작동하는지 실시간으로 볼 수 있습니다.
LMC 아이디어를 약간 변형하여 플레이할 수 있는 여러 게임이 있습니다. 이는 잠재적으로 아이들이 프로그래밍 학습에 참여하도록 하는 좋은 방법입니다.