home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / standard / disasm.z / disasm
Encoding:
Text File  |  2002-10-03  |  7.7 KB  |  132 lines

  1. DISASM(3E)                                             Last changed: 2-2-99
  2.  
  3.  
  4. NNAAMMEE
  5.      ddiiss__iinniitt, ddiiss__iinniitt3322, ddiiss__iinniitt6644, ddiiss__rreeggss, ddiiss__rreeggss3322, ddiiss__rreeggss6644,
  6.      ddiissaassmm, ddiissaassmm3322, ddiissaassmm6644, ddiissaasssseemmbblleerr3322, ddiissaasssseemmbblleerr6644 -
  7.      Disassembler functions
  8.  
  9. SSYYNNOOPPSSIISS
  10.      ##iinncclluuddee <<ddiissaasssseemmbblleerr..hh>>
  11.  
  12.      vvooiidd ddiiss__iinniitt ((cchhaarr **_a_d_d_r__f_o_r_m_a_t,,cchhaarr **_v_a_l_u_e__f_o_r_m_a_t,,
  13.        cchhaarr *_r_e_g__n_a_m_e_s[[]],,iinntt _p_r_i_n_t__j_a_l__t_a_r_g_e_t_s));;
  14.  
  15.      vvooiidd ddiiss__iinniitt3322 ((cchhaarr **_a_d_d_r__f_o_r_m_a_t,,cchhaarr **_v_a_l_u_e__f_o_r_m_a_t,,
  16.        cchhaarr *_r_e_g__n_a_m_e_s[[]],,iinntt _p_r_i_n_t__j_a_l__t_a_r_g_e_t_s));;
  17.  
  18.      vvooiidd ddiiss__iinniitt6644 ((cchhaarr **_a_d_d_r__f_o_r_m_a_t,,cchhaarr *_v_a_l_u_e__f_o_r_m_a_t,,
  19.        cchhaarr *_r_e_g__n_a_m_e_s[[]],,iinntt _p_r_i_n_t__j_a_l__t_a_r_g_e_t_s));;
  20.  
  21.      vvooiidd ddiiss__rreeggss((cchhaarr *_b_u_f_f_e_r,,uunnssiiggnneedd _r_e_g_m_a_s_k,,
  22.        uunnssiiggnneedd _r_e_g__v_a_l_u_e_s[[]]));;
  23.  
  24.      vvooiidd ddiiss__rreeggss3322((cchhaarr *_b_u_f_f_e_r,,uunnssiiggnneedd _r_e_g_m_a_s_k,,
  25.        uunnssiiggnneedd _r_e_g__v_a_l_u_e_s[[]]));;
  26.  
  27.      vvooiidd ddiiss__rreeggss6644((cchhaarr *_b_u_f_f_e_r,,uunnssiiggnneedd _r_e_g_m_a_s_k,,
  28.        ____uuiinntt6644__tt _r_e_g__v_a_l_u_e_s[[]]));;
  29.  
  30.      iinntt ddiissaassmm((cchhaarr *_b_u_f_f_e_r,,EEllff3322__AAddddrr _a_d_d_r_e_s_s,,EEllff3322__AAddddrr _i_w_o_r_d,,
  31.        EEllff3322__AAddddrr *_r_e_g_m_a_s_k,,EEllff3322__AAddddrr *_s_y_m_b_o_l__v_a_l_u_e,,
  32.        EEllff3322__AAddddrr *_l_s__r_e_g_i_s_t_e_r));;
  33.  
  34.      iinntt ddiissaassmm3322((cchhaarr *_b_u_f_f_e_r,,EEllff3322__AAddddrr _a_d_d_r_e_s_s,,EEllff3322__AAddddrr _i_w_o_r_d,
  35.        EEllff3322__AAddddrr *_r_e_g_m_a_s_k,,EEllff3322__AAddddrr *_s_y_m_b_o_l__v_a_l_u_e,,
  36.        EEllff3322__AAddddrr *_l_s__r_e_g_i_s_t_e_r));;
  37.  
  38.      iinntt ddiissaassmm6644((cchhaarr *_b_u_f_f_e_r,,EEllff6644__AAddddrr _a_d_d_r_e_s_s,, EEllff3322__AAddddrr _i_w_o_r_d,
  39.        EEllff3322__AAddddrr *_r_e_g_m_a_s_k,,EEllff6644__AAddddrr *_s_y_m_b_o_l__v_a_l_u_e,,
  40.        EEllff3322__AAddddrr *_l_s__r_e_g_i_s_t_e_r));;
  41.  
  42.      iinntt ddiissaasssseemmbblleerr((EEllff3322__AAddddrr _i_a_d_r,, iinntt _r_e_g_s_t_y_l_e,,
  43.        cchhaarr **((**ggeett__ssyymmnnaammee))(()),,iinntt ((**ggeett__rreeggvvaalluuee))(()),,
  44.        lloonngg ((**ggeett__bbyytteess))(()),, vvooiidd ((**pprriinntt__hheeaaddeerr))(())));;
  45.  
  46.      iinntt ddiissaasssseemmbblleerr3322((EEllff3322__AAddddrr iiaaddrr,, iinntt rreeggssttyyllee,,
  47.        cchhaarr **((**ggeett__ssyymmnnaammee))(()),,iinntt ((**ggeett__rreeggvvaalluuee))(()),,
  48.        lloonngg ((**ggeett__bbyytteess))(()),, vvooiidd ((**pprriinntt__hheeaaddeerr))(())));;
  49.  
  50.      iinntt ddiissaasssseemmbblleerr6644((____uuiinntt6644__tt iiaaddrr,, iinntt rreeggssttyyllee,,
  51.        cchhaarr **((**ggeett__ssyymmnnaammee))(()),,iinntt ((**ggeett__rreeggvvaalluuee))(()),,
  52.        lloonngg ((**ggeett__bbyytteess))(()),, vvooiidd ((**pprriinntt__hheeaaddeerr))(())));;
  53.  
  54. IIMMPPLLEEMMEENNTTAATTIIOONN
  55.      IRIX systems
  56.  
  57. DDEESSCCRRIIPPTTIIOONN
  58.      The following  register names (__NNAAMMEESS macro) may be useful in using
  59.      this command:
  60.  
  61.      ccoommppiilleerr:: zzeerroo,, aatt,, vv00,, ......
  62.  
  63.      hhaarrddwwaarree:: rr00,, rr11,, rr22,, ......
  64.  
  65.      aasssseemmbblleerr:: $$00,, $$aatt,, $$22,,......
  66.  
  67.      ddiiss__iinniitt, ddiiss__iinniitt3322, and ddiiss__iinniitt6644 functions initialize the
  68.      disassembler and set options for disassembly.
  69.  
  70.      When given a null-terminated buffer (presumably from ddiissaassmm), the
  71.      ddiiss__rreeggss, ddiiss__rreeggss3322, and ddiiss__rreeggss6644 functions append an ASCII
  72.      representation of register values in the form <<$$55==00xx5500,,$$77==00xx4444,,......>>.
  73.  
  74.      The ddiissaassmm, ddiissaassmm3322, and ddiissaassmm6644 functions disassemble instructions,
  75.      putting a null-terminated result into _b_u_f_f_e_r (no trailing newline).
  76.      Details governed by ddiiss__iinniitt.
  77.  
  78.      The ddiissaasssseemmbblleerr, ddiissaasssseemmbblleerr3322, and ddiissaasssseemmbblleerr6644 functions are
  79.      older interfaces, which always print on stdout.
  80.  
  81.      The following options are accepted by the disassembler:
  82.  
  83.      aaddddrr__ffoorrmmaatt, vvaalluuee__ffoorrmmaatt
  84.                Specify (in the style of pprriinnttff) the null-terminated formats
  85.                for printing the address and value of the instruction.  If
  86.                nil, they default to %%##001100xx; if they are the empty string,
  87.                these items are not printed.
  88.  
  89.      _r_e_g__n_a_m_e_s Pointer to an array of 32 strings that represent the
  90.                general-purpose registers.  The preceding **__NNAAMMEESS macros
  91.                give three common choices; if nil, compiler names are used.
  92.  
  93.      _p_r_i_n_t__j_a_l__t_a_r_g_e_t_s
  94.                Specifies whether to print the targets of jal instructions
  95.                numerically.
  96.  
  97.      _r_e_g_m_a_s_k   Bitmask of registers as in ddiissaassmm, rreegg__vvaalluueess. An array
  98.                (with empty slots for the registers not indicated in the
  99.                mask) of their values.
  100.  
  101.      _b_u_f_f_e_r    Array of characters allocated by the caller; 64 bytes should
  102.                be adequate.
  103.  
  104.      _a_d_d_r_e_s_s   Specifies byte address.
  105.  
  106.      _i_w_o_r_d     Specifies the instruction.
  107.  
  108.      _r_e_g_m_a_s_k   Returns a bitmask of the ggpp registers that the instruction
  109.                uses, with the LSB indicating register 0 regardless of
  110.                endianness.
  111.  
  112.      _s_y_m_b_o_l__v_a_l_u_e
  113.                For a JAL instruction, the target value; for a load or
  114.                store, the immediate value.
  115.  
  116.      _l_s__r_e_g_i_s_t_e_r
  117.                For a load or store, the number of the base register.
  118.  
  119. RREETTUURRNN VVAALLUUEESS
  120.      The following values are returned:
  121.  
  122.      --11   for a load or store 11 for a JAL
  123.  
  124.      22    for a J, JR, JALR, or branch
  125.  
  126.      00    for other
  127.  
  128. SSEEEE AALLSSOO
  129.      ddiissaasssseemmbblleerr(3X)
  130.  
  131.      This man page is available only online.
  132.