31 lines
379 B
Plaintext
31 lines
379 B
Plaintext
// multiply.dsa
|
|
// usage:
|
|
//
|
|
// include multiply "<relative path>"
|
|
//
|
|
// usage for multiply:
|
|
// push (arg1)
|
|
// push (arg0)
|
|
// call multiply::multiply
|
|
// pop (arg0)
|
|
// pop (arg1)
|
|
|
|
multiply:
|
|
push bpr
|
|
mov spr, bpr
|
|
|
|
ldw bpr, rg0, 8 // load op 1
|
|
ldw bpr, rg1, 12 // load op 2
|
|
|
|
start:
|
|
add acc, rg0, acc
|
|
dec rg1
|
|
|
|
cmp rg1, zero
|
|
jgt start
|
|
|
|
end:
|
|
mov bpr, spr
|
|
pop bpr
|
|
return
|