ORG $1000
		lea msgIn,a1
		move.w sizeIn,d1
		MOVE.B #1,D0
        	TRAP #15
		
		clr.l d1
		move.w #0,d2
		lea iarray,a0
	input:	MOVE.B #4,D0
        	TRAP #15
		move.w d1,(a0)
		adda.l #2,a0
		addi.w #1,d2
		cmpi.w #10,d2
		blt input
		
		
		move.w #0,total	
		lea iarray,a0
		move.w #0,imax	
		move.w #0,imin	
		move.w #0,d1	
		move.w (a0),max
		move.w (a0),min
	loop:	move.w (a0),d0
		add.w d0,total
		bvs overflow
		cmp.w max,d0
		bgt maxpro
     resumeMax:	cmp.w min,d0
		blt minpro
     resumeMin:	adda.l #2,a0
		addi.w #1,d1
		cmpi.w #10,d1
		blt loop
		
		move.w total,d0
		ext.l d0
		divs #10,d0
		bvs overflow
		move.w d0,average
		
		lea msgMax,a1
		move.w sizeMax,d1
		MOVE.B #1,D0
        	TRAP #15
		move.w max,d1
		ext.l d1
		MOVE.B #3,D0
        	TRAP #15
		lea msgidx,a1
		move.w sizeidx,d1
		MOVE.B #1,D0
        	TRAP #15
		clr.l d1
		move.w imax,d1
		MOVE.B #3,D0
        	TRAP #15
		move.l #0,A1
		MOVE.B #0,D0
        	TRAP #15
				
		lea msgMin,a1
		move.w sizeMin,d1
		MOVE.B #1,D0
        	TRAP #15
		move.w min,d1
		ext.l d1
		MOVE.B #3,D0
        	TRAP #15
		lea msgidx,a1
		move.w sizeidx,d1
		MOVE.B #1,D0
        	TRAP #15
		clr.l d1
		move.w imin,d1
		MOVE.B #3,D0
        	TRAP #15
		move.l #0,A1
		MOVE.B #0,D0
        	TRAP #15
				
		lea msgAvr,a1
		move.w sizeAvr,d1
		MOVE.B #1,D0
        	TRAP #15
		move.w average,d1
		ext.l d1
		MOVE.B #3,D0
        	TRAP #15
	ending:	move.l #0,d1
		MOVE.B #0,D0
        	TRAP #15
		stop #$2700
				
	maxpro: move.w d0,max
		move.w d1,imax
		bra resumeMax
	minpro: move.w d0,min
		move.w d1,imin
		bra resumeMin		

    overflow:   lea msgOvr,a1
                move.w sizeOvr,d1
		MOVE.B #0,D0
        	TRAP #15
                bra ending
	 
		
	msgIn: dc.b 'Please input 10 integer numbers:'
       sizeIn: dc.w 32
       iarray: dcb.w 10,0
          max: ds.w 1
	 imax: ds.w 1
	  min: ds.w 1
	 imin: ds.w 1
	total: ds.w 1
      average: ds.w 1
       msgMax: dc.b 'The largest number of this array is: '
      sizeMax: dc.w 37
       msgMin: dc.b 'The smallest number of this array is: '
      sizeMin: dc.w 38
       msgAvr: dc.b 'The average value of this array is: '
      sizeAvr: dc.w 36
       msgidx: dc.b '  index: '
      sizeidx: dc.w 9
       msgOvr: dc.b 'The calculation overflowed.'
      sizeOvr: dc.w 27
                end $1000    

    Source: geocities.com/wonlin/Assembly

               ( geocities.com/wonlin)