This study describes techniques for detranslating a restricted class of machine language program into an assembly language program. This detranslation process, called "disassembly", is concerned with the ultimate objective of realizing the software transport system, which moves well-debugged and already established software from one machine to another at object code level without reprogramming.
A systematic methodology is discussed for the disassembly process studied. The disassembler consists of three major phases: the control flow analysis, the data flow analysis, and the code generation. The control flow analysis include the block detection and loop detection algorithms. The data flow analysis is concerned with the loop analysis and variable range analysis. These flow analysis techniques resulted in the efficiency of the disassembly process.
In order to demonstrate the techniques discussed, the disassembler was implemented in a microcomputer. The working disassembler was tested by running the sample test programs which represent a variety of applications.