62 lines
		
	
	
	
		
			921 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			921 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| .sect .text; .sect .rom; .sect .data; .sect .bss
 | |
| 
 | |
| .define begtext,begdata,begbss,syscal
 | |
| .define hol0,.reghp,.limhp,.trppc,.ignmask
 | |
| .define ERANGE,ESET,EHEAP,ECASE,EILLINS,EIDIVZ,EODDZ
 | |
| .extern _end
 | |
| 
 | |
| ERANGE          = 1
 | |
| ESET            = 2
 | |
| EIDIVZ          = 6
 | |
| EHEAP           = 17
 | |
| EILLINS         = 18
 | |
| EODDZ           = 19
 | |
| ECASE           = 20
 | |
| 
 | |
| .sect .text
 | |
| 	.data1	0353
 | |
| 	.data1	0176	! jmp to begtext in 2 bytes. Assembler generates 3
 | |
| 			! bytes.
 | |
| 	.data2 -277, -277, -277, -277
 | |
| 	.space 116
 | |
| 	.data2 49920
 | |
| 
 | |
| begtext:
 | |
| 	mov	(.limhp),ax
 | |
| 	mov	(.reghp),ax
 | |
| 	xor	bp,bp
 | |
| 	mov bx,sp
 | |
| 	mov cx,(bx)
 | |
| 	add bx,4
 | |
| 	mov ax,cx
 | |
| 	inc ax
 | |
| 	shl ax,2
 | |
| 	add ax,bx
 | |
| 	push ax
 | |
| 	push bx
 | |
| 	push cx
 | |
| 	call    _m_a_i_n
 | |
| 	push	ax
 | |
| 	call	__exit
 | |
| .sect	.data
 | |
| begdata:
 | |
| hol0:
 | |
| 	.data2   0,0
 | |
| 	.data2   0,0
 | |
| argv:
 | |
| 	.data4   3f
 | |
| envp:
 | |
| 	.data4	0
 | |
| 3:
 | |
| 	.asciz "PROGRAM"
 | |
| .reghp:
 | |
| 	.data4   endbss
 | |
| .limhp:
 | |
| 	.data4   endbss
 | |
| .ignmask:
 | |
| 	.data4   0
 | |
| .trppc:
 | |
| 	.data4   0
 | |
| 
 | |
| 	.sect .bss
 | |
| begbss:
 |