||```const disk_nr = r1
const source = r2
const dest = r3
const spare = r4
const pickup = r5
main:
mov pickup, 5
mov sp, 1800
console sp
mov sp, 2048
in disk_nr
in source
in dest
in spare
call move
jmp main
move:
cmp disk_nr, zr
jne skip
call doPlace
ret
skip:
push disk_nr
push source
push dest
push spare
call swapsd
sub disk_nr, disk_nr, 1
call move
pop spare
pop dest
pop source
pop disk_nr
call doPlace
push disk_nr
push source
push dest
push spare
call swapss
sub disk_nr, disk_nr, 1
call move
pop spare
pop dest
pop source
pop disk_nr
ret
doPlace:
out source
out pickup
out dest
out pickup
ret
swapsd:
mov r6, spare
mov spare, dest
mov dest, r6
mov r6, zr
ret
swapss:
mov r6, spare
mov spare, source
mov source, r6
mov r6, zr
ret```||
💯