compudanzas/src/little_person_computer.gmo

78 lines
1.4 KiB
Plaintext

# little person computer
the little person computer is a model to learn about {computer architecture}
# architecture
is uses the decimal system, with words of three-digits each.
it has ten instructions and 100 memory addresses.
# example programs
written in the corresponding assembly language.
as part of the {s-camino} practice.
## multiplication of two numbers
### no labels
pure assembler version, no labels.
* 15 is the address for the result
* 16 is the address for 'a'
* 17 is the addres for 'b'
```
INP
STA 16
INP
STA 17
BRZ 11
LDA 16
ADD 15
STA 15
LDA 17
SUB 14
BRA 3
LDA 15
OUT
HLT
DAT 1
DAT 0
DAT 0
DAT 0
```
### with labels
the same behavior as above, but using labels for easier programming and reading
```
inputs INP
STA a
INP
loop STA b
BRZ print // finish if b is 0
LDA a
ADD result
STA result
LDA b
SUB one
BRA loop
print LDA result
OUT
HLT
one DAT 1
result DAT 0
a DAT 0
b DAT 0
```
# external links
=> https://teachcomputerscience.com/little-man-computer/ little man computer
=> https://teachcomputerscience.com/lmc-instruction-set/ the lmc instruction set
=> https://www.peterhigginson.co.uk/lmc/ little man computer - cpu simulator