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.
|
||||
|
||||
# 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
|
||||
|
|
Loading…
Reference in New Issue