46 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\" $Header$
 | |
| .TH A.OUT 5
 | |
| .SH NAME
 | |
| a.out \- universal assembler load format
 | |
| .SH DESCRIPTION
 | |
| The load files produced by the universal assemblers look very
 | |
| much alike.
 | |
| These load files consist of sequences of variable length
 | |
| records, each describing a part of the initialized memory.
 | |
| Bss type memory is left uninitialized by the universal assembler
 | |
| and has to be initialized at run-time.
 | |
| The EM header em_head will perform this task on most systems.
 | |
| Each record consists of a \fIcount\fP, an \fIaddress\fP and
 | |
| \fIcount\fP bytes.
 | |
| The first byte should be placed at \fIaddress\fP, the second at
 | |
| \fIaddress+1\fP, etc.
 | |
| 
 | |
| .nf
 | |
| struct loadf {
 | |
|         unsigned short  l_addr[2] ;     /* address */
 | |
|         short           l_cnt ;         /* count */
 | |
|         unsigned char   data[] ;        /* data */
 | |
| } ;
 | |
| .fi
 | |
| 
 | |
| This representation is machine dependent in two ways.
 | |
| First, the byte order in the first three fields is the byte order
 | |
| of the machine the universal assembler is running.
 | |
| Second, the format of the address differs from machine to machine.
 | |
| .br
 | |
| For example, for the Intel 8086 the first entry contains a
 | |
| 16-bit offset and the second entry a segment number.
 | |
| The segment number has to be multiplied by 16 and added to
 | |
| the addres to obtain the address of the first byte to be
 | |
| initialized.
 | |
| .br
 | |
| The PDP 11 version stores the address in l_addr[0] and the type
 | |
| of the initialized memory in l_addr[1].
 | |
| Types 1 and 3 are absolute, 4 is text, 5 is data and 6 BSS.
 | |
| .br
 | |
| For all other currently available machines the
 | |
| array of shorts is 'replaced' by a long.
 | |
| This long contains the 32-bit address.
 | |
| .SH "SEE ALSO"
 | |
| uni_ass(VI)
 | |
| .SH BUGS
 |