705 lines
9.3 KiB
Plaintext
705 lines
9.3 KiB
Plaintext
|
|
include print: "./print.dsa"
|
|
|
|
resb program: 0x1000
|
|
dw stack: 0x10000
|
|
dw input: 0x30000
|
|
|
|
_init:
|
|
ldw stack, bpr
|
|
mov bpr, spr
|
|
main:
|
|
lwi program, rga
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
jez acc, loop_end_99
|
|
loop_start_99:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
jez acc, loop_end_116
|
|
loop_start_116:
|
|
nop
|
|
subi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
subi acc, 1
|
|
jez acc, loop_end_122
|
|
loop_start_122:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jnz acc, loop_start_122
|
|
loop_end_122:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jez acc, loop_end_129
|
|
loop_start_129:
|
|
nop
|
|
addi acc, 1
|
|
jez acc, loop_end_131
|
|
loop_start_131:
|
|
nop
|
|
subi acc, 1
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jnz acc, loop_start_131
|
|
loop_end_131:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jnz acc, loop_start_129
|
|
loop_end_129:
|
|
nop
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
jnz acc, loop_start_116
|
|
loop_end_116:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jez acc, loop_end_150
|
|
loop_start_150:
|
|
nop
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
subi acc, 1
|
|
jnz acc, loop_start_150
|
|
loop_end_150:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jez acc, loop_end_157
|
|
loop_start_157:
|
|
nop
|
|
subi acc, 1
|
|
jnz acc, loop_start_157
|
|
loop_end_157:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
jez acc, loop_end_174
|
|
loop_start_174:
|
|
nop
|
|
subi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
subi acc, 1
|
|
jez acc, loop_end_178
|
|
loop_start_178:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jnz acc, loop_start_178
|
|
loop_end_178:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jez acc, loop_end_185
|
|
loop_start_185:
|
|
nop
|
|
addi acc, 1
|
|
jez acc, loop_end_187
|
|
loop_start_187:
|
|
nop
|
|
subi acc, 1
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jnz acc, loop_start_187
|
|
loop_end_187:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jnz acc, loop_start_185
|
|
loop_end_185:
|
|
nop
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
jnz acc, loop_start_174
|
|
loop_end_174:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jez acc, loop_end_205
|
|
loop_start_205:
|
|
nop
|
|
subi acc, 1
|
|
jnz acc, loop_start_205
|
|
loop_end_205:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jez acc, loop_end_210
|
|
loop_start_210:
|
|
nop
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
push acc
|
|
call print::print_byte
|
|
pop zero
|
|
jez acc, loop_end_260
|
|
loop_start_260:
|
|
nop
|
|
subi acc, 1
|
|
jnz acc, loop_start_260
|
|
loop_end_260:
|
|
nop
|
|
jnz acc, loop_start_210
|
|
loop_end_210:
|
|
nop
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
jez acc, loop_end_265
|
|
loop_start_265:
|
|
nop
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
push acc
|
|
call print::print_byte
|
|
pop zero
|
|
jez acc, loop_end_315
|
|
loop_start_315:
|
|
nop
|
|
subi acc, 1
|
|
jnz acc, loop_start_315
|
|
loop_end_315:
|
|
nop
|
|
jnz acc, loop_start_265
|
|
loop_end_265:
|
|
nop
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
addi acc, 1
|
|
push acc
|
|
call print::print_byte
|
|
pop zero
|
|
jez acc, loop_end_371
|
|
loop_start_371:
|
|
nop
|
|
subi acc, 1
|
|
jnz acc, loop_start_371
|
|
loop_end_371:
|
|
nop
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
push acc
|
|
call print::print_byte
|
|
pop zero
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
push acc
|
|
call print::print_byte
|
|
pop zero
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jez acc, loop_end_386
|
|
loop_start_386:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
subi acc, 1
|
|
jnz acc, loop_start_386
|
|
loop_end_386:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jez acc, loop_end_395
|
|
loop_start_395:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
subi acc, 1
|
|
jnz acc, loop_start_395
|
|
loop_end_395:
|
|
nop
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
jez acc, loop_end_405
|
|
loop_start_405:
|
|
nop
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
stw acc, rga
|
|
addi rga, 4
|
|
ldw rga, acc
|
|
subi acc, 1
|
|
jnz acc, loop_start_405
|
|
loop_end_405:
|
|
nop
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
subi acc, 1
|
|
jnz acc, loop_start_99
|
|
loop_end_99:
|
|
nop
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
stw acc, rga
|
|
subi rga, 4
|
|
ldw rga, acc
|
|
addi acc, 1
|
|
addi acc, 1
|
|
push acc
|
|
call print::print_byte
|
|
pop zero
|
|
push acc
|
|
call print::print_byte
|
|
pop zero
|
|
push acc
|
|
call print::print_byte
|
|
pop zero
|
|
hlt
|