Browse Prior Art Database

Object-Oriented Assembler/Disassembler

IP.com Disclosure Number: IPCOM000116037D
Original Publication Date: 1995-Jul-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 2 page(s) / 85K

Publishing Venue

IBM

Related People

Barrett, KL: AUTHOR [+2]

Abstract

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.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Object-Oriented Assembler/Disassembler

      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.

      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.

      The 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
instruction
STX has the following BLUE_PRT facet value on the OPCODE slot:
    ((OPCD 0 5)
     (EO 21 30)
     (RC 31)
     (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
                 through 10.
    ...