@neauoire : Stack machine disassemblers are often simpler than a register machine disassembler because of how many instructions are 0-operand. The instruction set is very regular!

Check out the disassembler for the 4stack CPU (it is packaged up in the Simulator tar file).
bernd-paysan.de/4stack.html

Now, if you want to go further than this, and are looking to disassemble "higher level" UXN back into a sequence of named function calls, you would need some kind of "symbol table" associating function name with address. Which starts looking a lot like a #Forth dictionary. You might want to look at how Forth decompilers work (see pg. 105-110 of forth.org/OffeteStore/1013_eFo). A Forth decompiler takes <1K and is easily run on target.