disassembler - disassemble a machine instruction and print
the results
int disassembler(
unsigned long iadr,
int regstyle,
char *(*get_symname)(unsigned long address),
unsigned long (*get_regvalue)(unsigned regnum),
unsigned (*get_bytes)(void),
void (*print_header)(unsigned long iadr, unsigned
instruction) );
Specifies the instruction address to be disassembled.
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;
pass a NULL for each that is not needed. Is called with
no arguments and returns the next byte or bytes to disassemble.
Is passed an address, which is the target of a
jmp, jsr, or bsr instruction. If NULL is returned or if
get_symname is NULL, the disassembler() routine prints the
address; otherwise, the string name is printed as returned
from get_symname. If not NULL, is passed a register number
and returns the current contents of the specified register.
The disassembler() routine prints this information
along with the instruction disassembly. If not NULL, 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.
The disassembler() routine disassembles and prints a
machine instruction on stdout.
The program must be linked with the object file access
routine library libmld.a.
If get_bytes is NULL, the disassembler() routine returns
-1 and errno is set to EINVAL; otherwise, the number of
bytes that were disassembled is returned.
ldfcn(4).
disassembler(3)
[ Back ] |