Archived
1
0

minor changes

This commit is contained in:
Erick
2022-02-13 23:02:08 +01:00
parent d00afae0bc
commit 5690fb96f0
3 changed files with 40 additions and 35 deletions
+5 -6
View File
@@ -16,7 +16,6 @@ TyVM is a very barebone VM that has:
- 16 opcodes
- 10 registers
- 3 condition flags
#### Memory
It has 2^16(=65,536) individual memory locations
```
@@ -68,11 +67,11 @@ enum { // [name, 8-bit value]
```
### Logic
- [10] Load instruction from memory at program counter [RG_PC] address;
- [20] Increment RG_PC;
- [30] Read opcode for next instruction;
- [40] Perform instruction read in 30;
- [50] Goto 10;
- [10] Load instruction from memory at program counter [RG_PC] address;
- [20] Increment RG_PC;
- [30] Read opcode for next instruction;
- [40] Perform instruction read in 30;
- [50] Goto 10;
### Build
On file "preprocessor.c" define the OS where you want to run TyVM. Comment out the following line if you want to build for Windows, otherwise it will build for Unix:
+3 -23
View File
@@ -1,26 +1,6 @@
.ORIG x3000
AND R0, R0, #0
AND R1, R1, #0
AND R3, R3, #0
LEA R0, NUM
ADD R1, R1, R0
LD R2, ASCII
FOR_LOOP
LDR R4, R1, #0
BRz END_LOOP
ADD R4, R4, R2
STR R4, R1, #0
ADD R1, R1, #1
BRnzp FOR_LOOP
END_LOOP
PUTs
LEA R0, HELLO_WORLD
PUTS
HALT
ASCII .fill x30
NUM .fill x01
.fill x02
.fill x03
.fill x04
HELLO_STR .STRINGZ "Hello World!"
.END
+26
View File
@@ -0,0 +1,26 @@
.ORIG x3000
AND R0, R0, #0 ; Clear R0
AND R1, R1, #0 ; Clear R1
AND R3, R3, #0 ; Clear R3
LEA R0, NUM ; pointer [mem]NUM
ADD R1, R1, R0 ; Store the pointer address of R0 into R1
LD R2, ASCII ; load the ascii offset into R2
FOR_LOOP
LDR R4, R1, #0 ; load the contents of mem address of R1 into R4
BRz END_LOOP
ADD R4, R4, R2 ; Add our number to the ASCII offset
STR R4, R1, #0 ; Store the new value in R4 into [mem] address R1
ADD R1, R1, #1 ; move our memory pointer down one
BRnzp FOR_LOOP ; loop again until we get an x00 char
END_LOOP
PUTs ; print our string starting from [mem]address in R0
HALT ; Trap x25
ASCII .fill x30 ; Our ASCII offset
NUM .fill x01 ; Our Number to print
.fill x02
.fill x03
.fill x04
.END