Original Publication Date: 1995-Jul-01
Included in the Prior Art Database: 2005-Mar-30
Barrett, KL: AUTHOR [+1]
Disclosed is an object-oriented framework for representing a processor language, in assembly language and machine language forms, as well as providing a way to convert between the two forms.
an object-oriented framework for representing a
processor language, in assembly language and machine language forms,
as well as providing a way to convert between the two forms.
In order to translate
between assembly language instructions
and machine language instructions, it is necessary to have knowledge
of the instructions, the instructions operands, the operand
positions, and the properties of the operands. It is useful to store
this knowledge in a machine accessible form in a compact way to
automate the process of translating between the two forms. The
knowledge is complex enough to warrant the development of such a
representation, rather than a straightforward programmatic
translation, but the details of the translation at the lower levels
are simple enough to permit such a representation.
representation scheme presented is based on object-oriented
design principles. The knowledge about both the instruction assembly
and machine language forms are stored as property lists in the object
representing that instruction. In the parlance of knowledge based
systems, every instruction is represented by an object and the two
language forms of the instruction are represented as slots of the
object. The machine language form is stored as the value of the
OPCODE slot and the assembly language form is stored in the ARG_LIST
and TC_FORM slots.
The value of
the OPCODE slot is a number which (if represented
in the binary number system) is the machine language instruction.
The OPCODE slot has a facet called BLUE_PRT which defines the various
fields of the machine language instruction. For example, the
STX has the following BLUE_PRT facet value on the OPCODE slot:
((OPCD 0 5)
(EO 21 30)
(RS 6 10)
(RA 11 15)
(RB 16 20))
which is interpreted as:
field OPCD (the 6 bit code of the instruction) starts at bit 0,
and ends at bit 5.
field EO (extended opcode) starts at bit 21, and ends
at bit 30.
field RC (condition bit) is bit 31.
field RS (source register number) is specified in bits 6