Archived
1
0
This repository has been archived on 2026-02-06. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
tyvm/asm/helloworld
T
2022-02-13 23:02:08 +01:00

26 lines
842 B
Plaintext

.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