disasm32 man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



DISASM(3E)							    DISASM(3E)

NAME
     dis_init, dis_init32, dis_init64, dis_regs, dis_regs32, dis_regs64,
     disasm, disasm32, disasm64, disassembler32, disassembler64 - disassembler
     functions

SYNOPSIS
     #include <disassembler.h>

     void dis_init (char *addr_format,char *value_format,
		    char *reg_names[],int print_jal_targets);

     void dis_init32 (char *addr_format,char *value_format,
		    char *reg_names[],int print_jal_targets);

     void dis_init64 (char *addr_format,char *value_format,
		    char *reg_names[],int print_jal_targets);

     void dis_regs(char *buffer,unsigned regmask,
		    unsigned reg_values[]);

     void dis_regs32(char *buffer,unsigned regmask,
		    unsigned reg_values[]);

     void dis_regs64(char *buffer,unsigned regmask,
		     __uint64_t reg_values[]);

     int disasm(char *buffer,Elf32_Addr address,Elf32_Addr iword,
		Elf32_Addr *regmask,Elf32_Addr *symbol_value,
		Elf32_Addr *ls_register);

     int disasm32(char *buffer,Elf32_Addr address,Elf32_Addr iword,
		  Elf32_Addr *regmask,Elf32_Addr *symbol_value,
		  Elf32_Addr *ls_register);

     int disasm64(char *buffer,Elf64_Addr address, Elf32_Addr iword,
		  Elf32_Addr *regmask,Elf64_Addr *symbol_value,
		  Elf32_Addr *ls_register);

     int disassembler(Elf32_Addr iadr, int regstyle,
		char *(*get_symname)(),int (*get_regvalue)(),
		      long (*get_bytes)(), void (*print_header)());

     int disassembler32(Elf32_Addr iadr, int regstyle,
		char *(*get_symname)(),int (*get_regvalue)(),
		      long (*get_bytes)(), void (*print_header)());

     int disassembler64(__uint64_t iadr, int regstyle,
		  char *(*get_symname)(),int (*get_regvalue)(),
			long (*get_bytes)(), void (*print_header)());

									Page 1

DISASM(3E)							    DISASM(3E)

DESCRIPTION
     Three sets of register names which people might want to use:
     compiler: zero, at, v0, ...
     hardware: r0, r1, r2, ...
     assembler: $0, $at, $2,...

     dis_init, dis_init32, and dis_init64 functions initialize disassembler
     and set options for disassembly.  "addr_format" and "value_format"
     specify in the style of "printf" the null-terminated formats for printing
     the address and value of the instruction. If nil, they default to
     "%#010x"; if they are the empty string, we omit to print these items.

     "reg_names" is a pointer to an array of 32 strings which we will use to
     represent the general-purpose registers. The *_NAMES macros above give
     three common choices; if nil, we use compiler names.

     print_jal_targets tells us whether to print the targets of jal
     instructions numerically.

     dis_regs, dis_regs32, and dis_regs64 functions Given a null-terminated
     buffer (presumably from "disasm"), we append an ascii representation of
     register values in the form "<$5=0x50,$7=0x44,...>".

     "regmask" is a bitmask of registers as in "disasm", "reg_values" an array
     (with empty slots for the registers not indicated in the mask) of their
     values.

     disasm, disasm32, and disasm64 functions Disassemble instruction, putting
     null-terminated result into "buffer" (no trailing newline). Details
     governed by "dis_init".

     buffer: array of characters allocated by the caller; 64 bytes should be
     more than enough.

     address: byte address.

     iword: the instruction.

     regmask: returns a bitmask of the gp registers the instruction uses, with
     the LSB indicating register 0 regardless of endianness.

     symbol_value: for a jal instruction, the target value; for a load or
     store, the immediate value.

     ls_register: for a load or store, the number of the base register.

     return value: -1 for a load or store, 1 for a jal, 2 for a j, jr, jalr,
     or branch, 0 for other.

     disassembler, disassembler32, and disassembler64 functions Older
     interface, which always prints on stdout.

									Page 2

DISASM(3E)							    DISASM(3E)

SEE ALSO
     disassembler(3X),

									Page 3

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net