30 lines
		
	
	
	
		
			621 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			621 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include <out.h>
 | 
						|
#include "header.h"
 | 
						|
#include "back.h"
 | 
						|
 | 
						|
int  Label, label_waiting; 
 | 
						|
 | 
						|
save_label( lab)
 | 
						|
char *lab;
 | 
						|
 | 
						|
/* It is now not possible to tell where the label belongs to, so store
 | 
						|
 * the string and remember the returned index to store the missing
 | 
						|
 * information later on (see dump_label()). Two labels at one address
 | 
						|
 * is not allowed.
 | 
						|
 */
 | 
						|
{
 | 
						|
	Label = find_sym( lab, SYMBOL_DEFINITION);
 | 
						|
	label_waiting = 1;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
dump_label()
 | 
						|
{
 | 
						|
	if ( label_waiting) {
 | 
						|
		align_word();
 | 
						|
	        symbol_table[ Label].on_valu = cur_value();
 | 
						|
	        symbol_table[ Label].on_type |= ( S_MIN + conv_seg( cur_seg));
 | 
						|
		label_waiting = 0;
 | 
						|
	}
 | 
						|
}
 | 
						|
 |