62 lines
		
	
	
	
		
			691 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			691 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
.define hol0,argv,.reghp,.limhp,envp,begbss
 | 
						|
.define WRITE
 | 
						|
.define .ignmask, .trpreg
 | 
						|
.define .stop, BRK
 | 
						|
.define ERANGE,EILLINS,ECASE
 | 
						|
.sect .text
 | 
						|
.sect .rom
 | 
						|
.sect .data
 | 
						|
.sect .bss
 | 
						|
.sect .text
 | 
						|
 | 
						|
topmem	= 0xFFFFFF
 | 
						|
 | 
						|
ERANGE 	= 1
 | 
						|
EILLINS	= 18
 | 
						|
ECASE	= 20
 | 
						|
 | 
						|
	.sect .text
 | 
						|
 | 
						|
	movd begbss, r7
 | 
						|
	movd endbss, r6
 | 
						|
1:
 | 
						|
	movqd 0, 0(r7)
 | 
						|
	addqd 4, r7
 | 
						|
	cmpd r6,r7
 | 
						|
	bgt 1b
 | 
						|
 | 
						|
	movd envp,tos
 | 
						|
	movd argv,tos
 | 
						|
	movd 1,tos
 | 
						|
	jsr @__m_a_i_n
 | 
						|
.stop:
 | 
						|
	movb 0x7f,tos
 | 
						|
	jsr @.putchar
 | 
						|
	bpt
 | 
						|
 | 
						|
BRK:
 | 
						|
	movd	0,r0
 | 
						|
	ret	0
 | 
						|
 | 
						|
WRITE:	jump	@__write
 | 
						|
 | 
						|
.sect .bss
 | 
						|
begbss:
 | 
						|
.sect .data
 | 
						|
hol0:
 | 
						|
	.data4 0
 | 
						|
	.data4 0
 | 
						|
argv:
 | 
						|
	.data4 3f
 | 
						|
envp:
 | 
						|
	.data4 0
 | 
						|
3:
 | 
						|
	.asciz 'PROGRAM'
 | 
						|
.reghp:
 | 
						|
	.data4 endbss
 | 
						|
.limhp:
 | 
						|
	.data4 endbss
 | 
						|
.ignmask:
 | 
						|
	.data2 0
 | 
						|
.trpreg:
 | 
						|
	.data4 0
 |