Little Man Computer Manual


The LMC (Little Man Computer) is a simplified model of the Von Numann architecture, the memory is made out of 100 “mailboxes” each of which can hold a 3 digit decimal number which can be either an instruction or data, labelled 0 through 99.

Note that it is possible to write a program that re-writes itself with this model.

Register Reference

Name Description
ACC (Accumulator) The accumulator is used for general mathematical operations.
PC (Program Counter) Holds the memory address of the next instruction to execute.
CIR (Current Intruction Register) Holds the currect instruction to be executed.
MAR (Memory Address Register) Holds the address to load from or store to.
MDR (Memory Data Register) Holds the value loaded from memory or to be written to memory.
in-box Is used to store the input from the user/operator.
out-box Is used to hold the output from the program.

Instruction Reference

Instruction Mnemonic Name Explanation
000 HLT Halt Halts execution.
1XX ADD Add Add the value at memory address XX to the accumulator.
2XX SUB Subtract Subtracts the value at memory address XX from the accumulator.
3XX STA Store Stores the value of the accumulator at memory address XX.
5XX LDA Load Load the value from memory address XX into the accumulator.
6XX BRA Branch Always Set PC to memory address XX, effectively jumping to XX.
7XX BRZ Branch on Zero Same as BRA but only if the contents of the accumulator is zero.
8XX BRP Branch on Positive Same as BRA but only if the contents of the accumulator is positive or zero.
901 INP Input Requests input from the in-box and puts the value into the accumulator.
902 OUT Output Outputs the contents of the accumulator to the out-box.