Advertisement
dennewbie

Based Index Sum + Sort

Dec 27th, 2019
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. * Somma gli elementi dell'array a partire dal quinto elemento (quinto elemento incluso),
  2. * di tutti gli elementi dell'array se e solo se questi sono dispari maggiori di 19.
  3. * Al termine ordina l'array in senso decrescente con il bubble sort.
  4.  
  5.        ORG     $8000
  6. SUM     LEA     ARR,A0
  7.        CLR.W   RES
  8.        MOVE.B  #LEN-1,D2
  9. LOOP1   MOVE.W  8(A0,D0),D3
  10.        CMP     #19,D3
  11.        BLT     SKIP1
  12.        BTST    #0,D3
  13.        BEQ     SKIP1
  14.        ADD.W   D3,D1
  15. SKIP1   ADD.W   #2,D0
  16.        DBRA    D2,LOOP1
  17.        MOVE.W  D1,RES
  18.        RTS
  19.  
  20. SORT    LEA     ARR,A0
  21.        CLR.W   D3
  22.        CLR.W   D2
  23.        MOVE.B  #LEN-1,D2
  24. LOOP2   MOVE.W  (A0),D0
  25.        MOVE.W  2(A0),D1
  26.        
  27.        CMP.W   D0,D1
  28.        BLT     SKIP2
  29.        MOVE.W  D0,2(A0)
  30.        MOVE.W  D1,(A0)
  31.        MOVE.W  #1,D3
  32. SKIP2   ADD.W   #2,A0
  33.        DBRA    D2,LOOP2
  34.        
  35.        TST     D3
  36.        BNE     SORT
  37.        RTS
  38.        
  39. START:  MOVEM.L A0/D0-D3,-(SP)
  40.        JSR     SUM
  41.        MOVEM.L (SP)+,A0/D0-D3
  42.        MOVEM.L A0/D0-D3,-(SP)
  43.        JSR     SORT
  44.        MOVEM.L (SP)+,A0/D0-D3
  45.  
  46.        SIMHALT
  47.        ORG     $8400
  48. ARR     DC.W    -5,-3,-2,-100,10,5,3,8,20,25,1000,-50,30,90,77
  49. LEN     EQU     14
  50. RES     DS.W    1
  51.        END     START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement