Server for Information Technologies

(095) 932-9212, 932-9213, 939-0783
E-mail: info@citforum.ru
(!) CIT Forum CD-ROM

A.OUT(5)
XENIX System V (1 ap 1989)


a.out - opa aa, oyaeoo peyae pao popa accepoa peaopa ce.


A.out ec peypy ao oce aepe pao popa acceepa masm peaopa ce ld. Ec poecce pao ao x popa e oapye o eopeeee oae epeee, ye coa a fa.out.

opa aa a.out, aae ae x.out ceepoa x.out, opeeec aa /usr/include/a.out.h /usr/include/sys/relsym.h. a a.out ee ceye ocoe ac:

  1. aooo
  2. ooe aooo
  3. Taa ceea aa ( ceepoax opao)
  4. Cee (Tec, ae, co ce acpo)

B ceepoao opae oy cyecoa ecoo ceeo eco ax, acoc o oe a popa. Cee ae aac c apeca, paoo paepy cpa aa (512 a).

OPA

     /*
     *Ocoo  ooe aooo cpyyp.
     * ceepoaoo opaa x.out (XE_SEG):
     *    1)o, appoae (s) o
        *         coepa cyy cex xs_psize,
                  ec opa axoc a ce
        *          xs_vsize  opaa a.
     *    2)coepoe oace, appoax
        *          (u) eopeeeo.
     */

struct xexec{         /*aooo x.out*/
  unsigned short x_magic; /*aecoe co*/
  unsigned short x_ext;    /*paep ooeoo
                                  aooa*/
  long    X-Text;             /*paep ceea eca (s)*/
  long    x_data;             /*paep apoax
                            ax (s)*/
  long    x_bss;              /*paep eapoax
                   ax (s)*/
  long    syms;               /*paep a coo (s)*/
  long    x_reloc;    /*a a epeee (s)*/
  long    x_entry;    /*ao aca oa xoa*/
  char    x_cpu;              /* poeccopa  opo a/coo*/
  char    x_relsym;   /*op epeee  coo (u)*/
  unsigned short x_renv;  /* cpea oe*/
};


struct xext {         /* ooe aooo x.out  */
  long    xe_trsize;       /* paep a epeee eca (s) */
  long    xe_drsize;       /* paep a epeee ax (s) */
  long    xe_tbase;   /* aa epeeaeoo eca(u) */
  long    xe_dbase;   /* aa epeeaex ax(u) */
  long    xe_stksize;      /* paep cea
                           (ec XE_FS ycaoe)     */

/* ceye aee ee o  pecae
   ec XE_SEG ycaoe */

  long    xe_segpos;       /* ooee a ceeo */
  long    xe_segsize;      /* paep a ceeo */
  long    xe_mdtpos;       /* ao acoe ooee */
  long    xe_mdtsize;       /* ao ac paep a */
  char    xe_mdttype;       /* ao ac  a */
  char    xe_pagesize;     /* paep cpa aa, paoe 512 */
  char    xe_ostype;        /*  oepaoo cce */
  char    xe_osvers;        /* epc oepaoo cce */
  unsigned short xe_eseg;  /*cee xoa, ac
                           o aapayp */
  unsigned short xe_sres;  /* peeppoa */
};



struct xseg {          /* aa ceeo x.out  */
  unsigned short xs_type;  /* ceea */
  unsigned short xs_attr;  /*apy ceea */
  unsigned short xs_seg;   /*oep ceea */
  char    xs_align;    /* oap o ocoa 2
                              o paa */
  char    xs_cres;     /* ecoyec*/
  long    xs_filpos;        /* ooee aa */
  long    xs_psize;    /* ec paep ( ae) */
  long    xs_vsize;    /* pya paep (in core) */
  long    xs_rbase;    /* apec/ceee a epeee */
  unsigned short xs_noff;  /* ceee o e cea  ae ceeo
                              ceea */
  unsigned short xs_sres;  /* ecoyec*/
  long    xs_lres;     /* ecoyec */
};

struct xiter {            /* ac oope x.out  */
  long    xi_size;     /* source byte count */
  long    xi_rep;      /* replication count */
  long    xi_offset;        /* destination offset in segment */
};

struct xlist {            /* xlist cpyypa  xlist(3). */
  unsigned short xl_type;  /*  coa */
  unsigned short xl_seg;   /* ec a ceea aa */
  long    xl_value;    /* ea coa */
  char    *xl_name;    /* yaae a , opaeoe ye */
};

struct aexec { /* aooo a.out */
  unsigned short xa_magic;    /* aecoe co */
  unsigned short xa_text;     /* paep ceea eca*/
  unsigned short xa_data;     /* paep apoax ax */
  unsigned short xa_bss;        /* paep eapoax ax */
  unsigned short xa_syms;     /* paep a coo */
  unsigned short xa_entry;    /* oa xoa */
  unsigned short xa_unused;   /* e coyec */
  unsigned short xa_flag;     /* a ocyc a e */
};


struct nlist {                 /* nlist cpyypa  nlist(3). */
  char    n_name[8];             /*  coa */
  int         n_type;            /* a a*/
  unsigned  n_value;             /* ea */
};

struct bexec {                  /* aooo b.out */
  long xb_magic;                /* aecoe co */
  long xb_text;                 /* paep ceea eca*/
  long xb_data;                 /* paep ceea ax*/
  long xb_bss;                  /* paep eapoax ax */
  long xb_syms;                 /* paep a coo*/
  long xb_trsize;               /* paep a epeee
                                   eca*/
  long xb_drsize;               /* paep a epeee
                                   ax*/
  long xb_entry;                /* oa xoa*/
};

.
masm(1), ld(1), nm(1), strip(1), xlist(1).
Comments: info@citmgu.ru
Designed by Andrey Novikov
Copyright © CIT