How do I choose a disassembler?Because I don’t know which language the source code is written in,I guess it may be C language
Can you recommend me a better decompiler software?My MCU is Freescale MC9S12XDP512MAG QFP144
You are seeing garbled characters because you are trying to view the binary file as if it were a text file. To view a binary file you need to use a hex editor, which shows you each byte in the file as a hex code.
In case you don't realize it, an MCU does not execute a language like C, it executes machine code. Machine code consists of a sequence of binary values that represent machine instructions. To interpret those instructions you need to look at the datasheet for the MCU. Disassemblers translate the machine code instructions into text that is easier for humans to read, but you will still need the datasheet to properly understand it.
Once a C program has been compiled into binary code, the original C language has been lost. You cannot get it back again. Compilation is a one-way trip. The only thing you can do is guess what the original C code might have looked like, which is what decompilers try to do. However, decompiling will never be 100% successful.