DISASSEMBLER(3X) DISASSEMBLER(3X)
disassembler - disassemble a MIPS instruction and print the results
int disassembler (iadr, regstyle, get_symname, get_regvalue,
get_bytes, print_header)
unsigned iadr;
int regstyle;
char *(*get_symname)();
int (*get_regvalue)();
long (*get_bytes)();
void (*print_header)();
Disassembler disassembles and prints a MIPS machine instruction on
stdout.
Iadr is the instruction address to be disassembled. Regstyle specifies
how registers are named in the disassembly; if the value is 0, compiler
names are used; otherwise, hardware names are used.
The next four arguments are function pointers, most of which give the
caller some flexibility in the appearance of the disassembly. The only
function that MUST be provided is get_bytes. All other functions are
optional. Get_bytes is called with no arguments and returns the next
byte(s) to disassemble.
Get_symname is passed an address, which is the target of a jal
instruction. If NULL is returned or if get_symname is NULL, the
disassembler prints the address; otherwise, the string name is printed as
returned from get_symname. If get_regvalue is not NULL, it is passed a
register number and returns the current contents of the specified
register. Disassembler prints this information along with the
instruction disassembly. If print_header is not NULL, it is passed the
instruction address iadr and the current instruction to be disassembled,
which is the return value from get_bytes. Print_header can use these
parameters to print any desired information before the actual instruction
disassembly is printed.
If get_bytes is NULL, the disassembler returns -1 and errno is set to
EINVAL; otherwise, the number of bytes that were disassembled is
returned. If the disassembled word is a jump or branch instruction, the
instruction in the delay slot is also disassembled.
The program must be loaded with the object file access routine library
libelfutil.a.
ldfcn(4).
PPPPaaaaggggeeee 1111 [ Back ]
|