Facebook
From bw, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 284
  1. .global _start
  2.  
  3.  
  4. ! tablica [3, 6, 4, 5]
  5. ! /////////////////////////////////////////////
  6. SET_FIRST:
  7. MOV 0, %l7
  8. MOV 16,%l6
  9. ST %l7, [%l6] ! Adres i wartość tab[0]
  10. RETL
  11. NOP
  12.  
  13. ! /////////////////////////////////////////////
  14. func:
  15. ! i0 - adres aktualnej zmiennej
  16. save %sp, -96, %sp
  17. LD [%i0], %l0   ! wartosc tab[i]        -> l0 val tab[i+1]
  18. SUB %i0, 4, %l1 ! l1 - adres tab[i-1]   -> l1 add tab[i]
  19. LD [%l1], %l2   ! wartosc tab[i-1]      -> l2 val tab[i]
  20.  
  21. SUB %l0, %l2, %l3       ! l0 - wynik tab[i+1] - tab[i]
  22. ADD %i0, 16, %l4
  23. ST %l3, [%l4]           ! zapis wyniku do tab[i]
  24.  
  25. RET
  26. RESTORE
  27.  
  28.  
  29. ! //////////////////////////////////////////////
  30. _start:
  31. ! %l0 - adres poczatku
  32. ! %l2 - aktualny adres w tab[]
  33. ! %l3 - adres konca
  34. ! %l4 - wartosc wyniku petli
  35.  
  36.  
  37.  
  38. mov 0, %l0
  39. mov 4, %l1
  40. mov 4, %l2
  41. mov 16, %l3
  42.  
  43.  
  44. for:
  45.  
  46. MOV %l2, %o0
  47. NOP
  48. CALL func
  49.  
  50. ADD %l2, 4, %l2
  51. SUBcc %l3, %l2, %l4
  52. Bl koniec
  53. nop
  54. Ba for
  55. nop
  56.  
  57.  
  58. koniec:
  59. CALL SET_FIRST
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.