31 lines
		
	
	
	
		
			373 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			373 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
.define	.print
 | 
						|
.sect .text
 | 
						|
.sect .rom
 | 
						|
.sect .data
 | 
						|
.sect .bss
 | 
						|
.sect .text
 | 
						|
 | 
						|
	.sect .text
 | 
						|
 | 
						|
.print:
 | 
						|
	save[r0,r1,r2]
 | 
						|
	movd 16(sp), r0
 | 
						|
	movd 1000000000, r2
 | 
						|
	cmpqd 0, r0
 | 
						|
	ble 4f
 | 
						|
	movb "-", tos
 | 
						|
	jsr @.putchar
 | 
						|
	negd r0, r0
 | 
						|
4:
 | 
						|
!	deid r2, r0
 | 
						|
	movd r0, r1
 | 
						|
	divd r2, r1
 | 
						|
	modd r2, r0
 | 
						|
	addb "0", r1
 | 
						|
	movb r1, tos
 | 
						|
	jsr @.putchar
 | 
						|
	divd 10, r2
 | 
						|
	cmpqd 0, r2
 | 
						|
	bne 4b
 | 
						|
	restore[r0,r1,r2]
 | 
						|
	ret 4
 |