| 
					
	
	
	
	
				 | 
				
					
	
	 
		I'm making my Assembler in C# and almost have it completed. It correctly handles the Add.asm, and all the *L.asm files, but not the regular Max/Rect/Pong.asm files. I'm trying to implement a way to handle '@' commands that don't have explicit number (ex. @address) and labels and such.
  Can someone explain the following to me? When I run the Rect.asm file through the built-in assembler I see the following conversions take place:
  @INFINITE_LOOP = 0000 0000 0001 0111 (23)
 @count = 0000 0000 0001 0000 (16)
 @SCREEN = 0100 0000 0000 0000 (?)
 @LOOP = 0000 0000 0000 1010 (10)
  And for the Max.asm file:
  @R1 = 0000 0000 0000 0001 (1)
 @OUTPUT_FIRST = 0000 0000 0000 1010 (10)
 @OUTPUT_D = 0000 0000 0000 1100 (12)
 @R0 = 0000 0000 0000 0000 (0)
 @R2 = 0000 0000 0000 0010 (2)
 @INFINITE_LOOP = 0000 0000 0000 1110 (14)
  How/why does the built-in assembler choose these specific values when assembling these commands?
 
	
	
	
	 
				 |