wrote a println example in .dsa
This commit is contained in:
@@ -0,0 +1,33 @@
|
|||||||
|
db stack: 0x10000
|
||||||
|
db screen: 0x20000
|
||||||
|
db string: "Dominos sucks!"
|
||||||
|
db length: 14
|
||||||
|
|
||||||
|
cll init
|
||||||
|
cll start
|
||||||
|
hlt
|
||||||
|
|
||||||
|
init:
|
||||||
|
ldw stack, bpr
|
||||||
|
mov bpr, spr
|
||||||
|
ret
|
||||||
|
|
||||||
|
start:
|
||||||
|
ldb length, rg0
|
||||||
|
lwi string, rg1
|
||||||
|
lwi display, rg2
|
||||||
|
|
||||||
|
loop:
|
||||||
|
// read from string and write to display
|
||||||
|
ldb rg1, rg3, rg4
|
||||||
|
stb rg3, rg1, rg4
|
||||||
|
|
||||||
|
// increment the offset & decrement the loop counter
|
||||||
|
inc rg4
|
||||||
|
dec rg0
|
||||||
|
|
||||||
|
// if loop counter <= 0 return.
|
||||||
|
cmp rg0, zero,
|
||||||
|
jgt loop
|
||||||
|
ret
|
||||||
|
|
||||||
@@ -216,7 +216,7 @@ impl Executable for Instruction {
|
|||||||
|
|
||||||
// Loads a 16-bit literal value into reg, setting the bottom 16 bits of the word. To populate the upper 16 bits, see LUI.
|
// Loads a 16-bit literal value into reg, setting the bottom 16 bits of the word. To populate the upper 16 bits, see LUI.
|
||||||
Self::LoadLowerImmediate(reg, imm) => {
|
Self::LoadLowerImmediate(reg, imm) => {
|
||||||
*cpu.reg(reg) = (cpu.get(reg) & 0xFFFF_0000) | imm as u32;
|
*cpu.reg(reg) = imm as u32;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Loads a 16-bit literal value into reg, setting the top 16 bits of the word. To populate the lower 16 bits, see LLI.
|
// Loads a 16-bit literal value into reg, setting the top 16 bits of the word. To populate the lower 16 bits, see LLI.
|
||||||
|
|||||||
Reference in New Issue
Block a user