1. A method for implementing a disassembler, wherein the disassembler is a mode-settable, specification-driven disassembler, comprising: receiving a machine-code version of a computer program; comparing machine-code instruction against a set of templates for assembly code instructions to identify a set of matching templates; selecting a matching template from the set matching templates based on the state of a mode variable indicating a specificity mode for the disassembler; and disassembling the machine-code instruction using the operand fields defined by the matching template to produce a corresponding assembly code instruction.