little person computer program
This commit is contained in:
parent
9fa13f84f2
commit
4eea879cdb
|
@ -8,6 +8,68 @@ is uses the decimal system, with words of three-digits each.
|
||||||
|
|
||||||
it has ten instructions and 100 memory addresses.
|
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
|
# external links
|
||||||
|
|
||||||
=> https://teachcomputerscience.com/little-man-computer/ little man computer
|
=> https://teachcomputerscience.com/little-man-computer/ little man computer
|
||||||
|
|
Loading…
Reference in New Issue