disassembler(3)disassembler(3)NAMEdisassembler - disassemble a machine instruction and print the results
SYNOPSIS
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)
);
PARAMETERS
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() rou‐
tine 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.
DESCRIPTION
The disassembler() routine disassembles and prints a machine instruc‐
tion on stdout.
The program must be linked with the object file access routine library
libmld.a.
RETURN VALUES
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.
SEE ALSOldfcn(4).
disassembler(3)