Query: disassembler
OS: ultrix
Section: 3x
Links: ultrix man pages all man pages
Forums: forum home forum categories
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
disassembler(3x) disassembler(3x) Name disassembler - disassemble a MIPS instruction and print the results Syntax 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)(); Description The disassembler function disassembles and prints a MIPS machine instruction on stdout. The argument is the instruction address to be disassembled. The regstyle parameter specifies how registers are named in the disassembly. The value is 0 if 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. The get_bytes function is called without arguments and returns the next byte or bytes to disassemble. The 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 disassem- bler 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. The disassembler function 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. The print_header function can use these parameters to print any desired informa- tion 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. See Also ldfcn(5) RISC disassembler(3x)